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

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

Ознаки

Розглянемо наведений нижче сценарій. Ви запускаєте запит в Microsoft SQL Server 2008 R2 або Microsoft SQL Server 2012, а оптимізатор запитів генерує план виконання, який містить верхню оператор. У цьому сценарії запит може зайняти багато часу, щоб виконати. Наприклад, ви запускаєте запит, який нагадує таке:

SELECT TableA.Col1 FROM TableA JOIN TableB ON TableA.Col1 = TableB.Col1 WHERE TableA.Col2 = N'A' AND TableB.Col3 IN (SELECT Col1 FROM TableC )Цей запит включає два об'єднання. Один стик – між столами "Tabeb" і "Табтек". (Мається на увазі наявність у предикаті.) Інший стик між таблицею а та результатом першого об'єднання. У предикаті буде повернуто значення TRUE, якщо запит знаходить принаймні один рядок, який відповідає першому предикаті приєднання. Таким чином, оптимізатор запитів додає верхню оператору в плані виконання запиту. Такий запит може повертати лише кілька рядків. Але це може зайняти більше часу, щоб виконати цей запит, ніж очікувалося. У плані виконання фактичних запитів Орієнтовна кількість рядків значно відрізняється від фактичної кількості рядків. Це впливає на здатність оптимізатора запитів точно оцінити вартість різних варіантів плану. Ця проблема також може виникати, якщо ви використовуєте оператор TOP або, якщо ви використовуєте один із таких операторів:

  • OPTION (FAST N)

  • В

  • Існує

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

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

SQL Server 2008 R2 Service Pack 2

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

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

2730301 Випущено пакет оновлень 2 для SQL Server 2008 R2, випущеній після випуску SQL Server 2008 R2 Service Pack NO2

SQL Server 2008 R2 Service Pack 1

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

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

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

SQL Server 2012

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

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

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

SQL Server 2008 R2

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

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

981356 Випущено SQL Server 2008 R2, випущеній після випуску SQL Server 2008 R2Примітка . Після інсталяції сукупного оновлення, слід ввімкнути прапорець трасування 4199, щоб увімкнути виправлення, яке надається в цьому сукупному оновленні, якщо виконуються такі умови:

  • У плані запитів є верхній оператор над вкладеним оператором-об'єднанням (join 1) у правій частині іншого оператора або приєднання (join 2).

  • Зовнішня частина об'єднання 1 має Зовнішнє посилання на зовнішню сторону об'єднання 2.

  • Приєднання до 1 використовує предикат рівності на лівому стовпчику, який є унікальним.

Приклад такого запиту відображається в розділі "ознаки". (Це передбачає, що деякі обмеження унікальності існують в базі даних.) Якщо є інші запити, які містять ВЕРХНЮ, OPTION (FAST N), IN або ІСНУЮТЬ оператори та виробляють аналогічні симптоми, але не відповідають шаблону, який описано тут, увімкніть трасування позначки 4138.Попередження! Якщо ввімкнути позначку трасування 4138, продуктивність може зменшитися для деяких інших запитів, які містять ВЕРХНІ, OPTION (FAST N), IN або ІСНУЮТЬ оператори. Трасування позначки 4138 має використовуватися, лише якщо виконуються такі умови:

  • Його вплив на повільні запити, які передбачають ці оператори, підтверджено.

  • Немає інших корисних способів вирішення.

  • Не виявлено регресія в інших запитах, які містять аналогічні оператори.

Стан

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

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

Щоб вирішити цю проблему, скористайтеся оператором ЛІВОГО ЗОВНІШНЬОГО об'єднання або будь-яким кількома підказками ОПТИМІЗАТОРА.

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

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

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

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

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

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

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

×