Перейти до основного
Підтримка
Вхід
Вхід за допомогою облікового запису Microsoft
Увійдіть або створіть обліковий запис.
Вітаємо,
Виберіть інший обліковий запис.
У вас є кілька облікових записів
Виберіть обліковий запис, за допомогою якого потрібно ввійти.

Корпорація Майкрософт поширює Microsoft SQL Server 2008 R2 Service Pack 1 (SP1) або Microsoft SQL Server 2012 виправлення в одному файлі, що завантажується. Оскільки виправлення є сукупними, кожен новий випуск містить всі поточні виправлення та всі оновлення системи безпеки, які були включені до попередньої версії SQL Server 2008 R2 Service Pack 1 (SP1) або Microsoft SQL Server 2012 оновлення.

Ознаки

Розглянемо такий сценарій:

  • Ви інсталюєте екземпляр Microsoft SQL Server 2008 R2 або Microsoft SQL Server 2012 на комп'ютері.

  • У прикладі виконуються паралельні твердження, які нагадують наступне:

    CREATE PROC p AS RETURN (
    query
    ); EXEC p;

    Або ви запускаєте запит, який містить наведений нижче код.

    IF EXISTS(
    subquery
    );
  • Використання процесора постійно високе, а потоки робочих потоків у стані Runnable.

  • Твердження про QUERY_EXEC_STATS -«спізлок» високий. Наприклад, лічильник обертання, можливі зіткнення, а також незворотні значення для QUERY_EXEC_STATS spamplock швидко збільшується.Примітка. Щоб отримати докладні відомості про те, як відстежувати QUERY_EXEC_STATS sponlock, ознайомтеся з розділом "Додаткові відомості".

У цьому сценарії може виникнути низька продуктивність.

Причина

Ця проблема, оскільки виникає помилка SQL Server 2008 R2 або SQL Server 2012, створює та знищує деякі структури пам'яті про глобальні статистичні дані замість їх кешування. Це призводить до вузьким місцем продуктивності.

Спосіб вирішення

Відомості про Сукупне оновлення

SQL Server 2012

Виправлення для цієї проблеми уперше випущено в сукупному оновленні 1 для SQL Server 2012. Щоб отримати докладні відомості про цей пакет накопичувальне оновлення, клацніть номер статті в базі знань Microsoft Knowledge Base:

2679368 Сукупний пакет оновлень пакета 1 для SQL Server 2012Примітка. Оскільки будує сукупну версію, кожен новий випуск Fix містить всі виправлення та виправлення безпеки, які були включені до попередньої версії SQL Server 2012 Fix Release. Корпорація Майкрософт рекомендує застосувати найновішу версію виправлення, що містить це виправлення. Щоб отримати докладні відомості, клацніть номер цієї статті бази знань Microsoft:

2692828 Інстальовано версії SQL Server 2012, випущені після випуску SQL Server 2012 Щоб інсталювати SQL Server 2012, потрібно додати виправлення SQL Server 2012.

Сукупний пакет оновлень пакета 5 для SQL Server 2008 R2 SP1

Виправлення для цієї проблеми уперше випущено в сукупному оновленні 5. Щоб отримати докладні відомості про отримання цього сукупного оновлення пакета для SQL Server 2008 R2 SP1, клацніть цей номер статті, щоб переглянути статтю в базі знань Microsoft Knowledge Base:

2659694 Сукупний пакет оновлень пакета 5 для SQL Server 2008 R2 SP1Примітка. Оскільки пакет складається з сукупних, кожен новий випуск Fix містить всі поточні виправлення та всі виправлення системи безпеки, які були включені до попередньої версії SQL Server 2008 R2 SP1 Fix. Радимо застосувати найновішу версію виправлення, що містить це виправлення. Щоб отримати докладні відомості, клацніть номер цієї статті бази знань Microsoft:

2567616 Випущено пакет версії SQL Server 2008 R2, випущеній після випуску SQL Server 2008 R2 SP1

Додаткові відомості

Щоб відстежувати QUERY_EXEC_STATS spenlock, налаштуйте затримку та кількість ітерацій відповідно до середовища в такому коді, а потім виконайте її:

SET NOCOUNT ONCREATE TABLE #spins([Spinlock Name] varchar(50),Collisions numeric,Spins numeric,[Spins/Collision] float,[Sleep Time (ms)] numeric,Backoffs numeric, InsertTime datetime DEFAULT GETDATE())DECLARE @counter int = 1WHILE @counter < 10      BEGIN            INSERT INTO #spins ([Spinlock Name], Collisions, Spins, [Spins/Collision], [Sleep Time (ms)], Backoffs) EXECUTE ('DBCC SQLPERF (''SPINLOCKSTATS'') WITH NO_INFOMSGS')            WAITFOR DELAY '00:00:05'            SET @counter +=1      ENDSELECT * FROM #spins WHERE [Spinlock Name] = 'QUERY_EXEC_STATS' ORDER BY InsertTimeDROP TABLE #spins

Стан

Корпорація Майкрософт підтвердила, що це проблема в продуктах Microsoft, перелічених у розділі "застосовується до".

Потрібна додаткова довідка?

Потрібні додаткові параметри?

Ознайомтеся з перевагами передплати, перегляньте навчальні курси, дізнайтесь, як захистити свій пристрій тощо.

Спільноти допомагають ставити запитання й відповідати на них, надавати відгуки та дізнаватися думки висококваліфікованих експертів.

Чи ця інформація була корисною?

Наскільки ви задоволені якістю мови?
Що вплинуло на ваші враження?
Натиснувши кнопку "Надіслати", ви надасте свій відгук для покращення продуктів і служб Microsoft. Ваш ІТ-адміністратор зможе збирати ці дані. Декларація про конфіденційність.

Дякуємо за відгук!

×