KB974006-SQL Server запит оптимізатора виправлень трасування позначки 4199 обслуговування моделі

Застосовується до: Microsoft SQL Server 2005 Standard EditionMicrosoft SQL 2005 Server EnterpriseMicrosoft SQL Server 2005 Standard X64 Edition

ОСНОВНІ ВІДОМОСТІ


Версії Microsoft SQL Server згодом, ніж SQL Server 2000 Service Pack 3 (SP3), на якому описано найбільш термінові зміни до оптимізатора запитів у стані "за замовчуванням" для того, щоб заборонити існуючим клієнтам у вигляді очікуваних змін плану, які можуть спричинити регресія продуктивності. Спочатку, кожне виправлення було доставлено під окремим прапором трасування. Згодом цю практику було змінено, щоб більшість прапорів поєднувалися в межах одного прапора трасування (4199). Цю нову практику було ініційовано в кількох версіях, які починаються з таких оновлень:
  • SQL Server 2005 Service Pack 3 (SP3) накопичувальне оновлення 6
  • SQL Server 2008 Service Pack 1 (SP1) накопичувальне оновлення пакета 7
  • SQL Server 2008 R2 (RTM)
Трасування позначку 4199 використовувався для збирання виправлень, призначених для того, щоб стати на-за замовчуванням у майбутній версії, а інші прапори трасування використовувалися для ситуацій, у яких виправлення не було призначено для використання за замовчуванням в поточній формі. Починаючи з сервера SQL Server 2016 RTM, настройки бази даних COMPATIBILITY_LEVEL буде використано, щоб активувати прапорець трасування 4199, пов'язаних із ними поточних виправлень за замовчуванням. У цій статті подано опис механіки та політики виправлення, які впливають на план, буде доставлено для SQL Server 2016 і новіші версії.

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


У SQL Server 2016, трасування позначки 4199 виправлення, внесені до попередніх випусків SQL Server, стануть доступними в розділі база даних COMPATIBILITY_LEVEL 130 без трасування позначки 4199. Трасування позначки 4199 використовуватиметься для випуску будь-яких майбутніх виправлень SQL Server 2016 для баз даних за допомогою рівня сумісності 130. Оскільки трасування позначки 4199 рекомендується тільки для клієнтів, які бачать певні проблеми з продуктивністю, клієнти радять видаляти позначки трасування 4199 після перенесення баз даних до найновішої версії сумісності, тому що засіб трасування 4199 буде повторно використаний для майбутніх виправлень, які можуть не застосовуватися до програми, а також можуть спричинити неочікуване внесення змін в плані продуктивності в системі виробництва. Це означає, що для кожного рівня сумісності, який підтримується в даному випуску продукту, увімкнуто виправлення 4199 виправлень. T– останній рівень сумісності вже дає змогу виконувати всі попередні виправлення під прапором трасування 4199. Це означає, що оновлення бази даних до найновішого рівня сумісності та видалення позначки трасування 4199 все ж таки дає змогу усунути всі виправлення, які завантажене до оновлення бази даних, а не нові виправлення. Якщо в подальшому виникли проблеми з продуктивністю клієнтів, експериментуйте з увімкненням параметра QUERY_OPTIMIZER_HOTFIXES або підказкою запитів ENABLE_QUERY_OPTIMIZER_HOTFIXES в тестовій середовищі, щоб визначити, чи вирішено проблему. Зверніться до документації про QUERY_OPTIMIZER_HOTFIXES

Примітка За замовчуванням бази даних, створені в SQL Server 2016, використовують рівень сумісності 130, і вже ввімкнуто нову логіку оптимізатора.Основна перевага цієї моделі полягає в тому, що він зменшує ризик для виробничих систем під час процесу оновлення. Цей підхід відокремлює інсталяцію нової основної версії SQL Server з автоматичного ввімкнення всіх нових змін у процесорі запитів. Оскільки основні оновлення версії змінюють формат файлу та не є оборотними, радимо використовувати настройку COMPATIBILITY_LEVEL, оскільки це дає змогу клієнту швидко отримати зниження, якщо під час оновлення виявлено неочікуване запитання про продуктивність плану. Якщо клієнт знаходить несподівані зміни плану, які блокують оновлення програми, клієнт може полегшити ситуацію, застосувавши відповідний план, використовуючи сховище запитів, щоб примусово використати попередній план або полегшити ситуацію, звернувшись до служби підтримки Microsoft, щоб допомогти з цією проблемою, щоб надати спосіб вирішення або виправлення. Якщо всі проблеми зменшилася, оновлення можна продовжити. Клієнти мають інтегрувати ці можливості в планування оновлення SQL Server 2016.У наведеній нижче таблиці описано модель того, як засіб трасування 4199 працюватиме, починаючи з SQL Server 2016.

Налаштування Рівень сумісності SQL Трасування позначки 4199 Оптимізатор виправлень перед SQL Server 2016 RTM Оптимізатор виправлень після сервера SQL Server 2016 RTM
1. 120 Від Вимкнуто Вимкнуто
2. 120 На Ввімкнуто Вимкнуто
3. 130 Від Ввімкнуто за рівнем сумісності Вимкнуто
4. 130 На Ввімкнуто за рівнем сумісності Ввімкнуто за рівнем сумісності

Примітка. Параметр No 3 рекомендовано для клієнтів, які знову оновлюєте програму SQL Server 2016.Для основних випусків після сервера SQL Server 2016, корпорація Майкрософт планує продовжити використовувати цю модель обслуговування для виправлення поточних послуг оптимізатора. За замовчуванням або кожного випуску, будь-який із цих слідів 4199 виправлень з попереднього випуску буде активовано в наступному рівні сумісності. Це означає, що рекомендований стан для клієнтів після переходу до найновішого рівня сумісності матиме позначку трасування 4199 вимкнуто. Подальші виправлення будуть використовувати прапор трасування 4199, щоб активувати виправлення для клієнтів, які повинні активувати ці виправлення в програмі. Клієнти радять вимкнути прапор трасування 4199 після оновлення програми до найновішого рівня сумісності, щоб уникнути неочікуваних змін, внесених в оптимізатор майбутніх оптимізаторів у програмі. Це оновлення до найновішого рівня сумісності та видалення позначки трасування 4199 все ще дає змогу виправити всі виправлення, які завантаженості, перш ніж оновлювати, просто не нові виправлення.

Примітка Хоча в розділі трасування позначку 4199 активовано багато виправлень для оптимізатора, деякі з них можуть використовувати інші позначки трасування. Трасування позначки 4199 історично висвітлені прапори трасування, які широко застосовуються, і, ймовірно, стане активовано за замовчуванням у майбутньому випуску. Позначки альтернативного трасування використовуються в поточних виправлень, де умови дуже специфічні лише для кількох клієнтів, де виправлення може спричинити регресія продуктивності в інших програмах, або там, де внутрішні функції можуть переглядати зміни, перш ніж вона стане доступною для всіх. Корпорація Майкрософт продовжуватиме використовувати інші прапори трасування, як потрібно, щоб обслуговувати продукт.Примітка У цій статті розповідається про модель випуску трасування 4199: виправлення на останньому рівні сумісності найновішого продукту. (На час публікації це SQL Server 2016.) Термінові виправлення можуть бути випущені на старіших версіях SQL Server або на нижчій рівень сумісності (120 або попередньої версії) SQL Server 2016. Корпорація Майкрософт оцінить кожен інцидент і визначає, чи слід використовувати прапор трасування 4199 або інший прапор трасування. Оскільки зміни, які не є виправленням, також ввімкнуто, коли переміщення виконується на рівень сумісності з більш пізнішими, немає певної обіцянки, що під час оновлення (з позначкою трасування 4199) не відбудеться жодних змін у плані. Клієнти завжди повинні перевіряти зміни на рівні сумісності для виробничих програм, а також використовувати технології пом'якшення, як-от магазин запитів, у разі виникнення проблеми з відповідним виконанням плану.У таблиці нижче наведено список позначок трасування, які використовувалися для виправлення процесорів запитів перед введенням засобу трасування 4199.

Стаття бази знань Microsoft Позначка трасування
318530 4101
940128 4102
919905 4103
920346 4104
920347 4105
922438 4106
923849 4107
926024 4108
926773 4109
933724 4110
934065 4111
946793 4115
950880 4116
948445 4117
942659 4119
953948 4120
942444 4121
946020 4122
948248 4124
949854 4125
959013 4126
953569 4127
955694 957872 4128
958547 4129
956686 4131
958006 4133
960770 4135*

SQL Server 2005

Виправлення для цієї проблеми уперше випущено в сукупному оновленні 6 для SQL Server 2005 Service Pack 3. Щоб отримати докладні відомості про цей пакет накопичувальне оновлення, клацніть номер статті в базі знань Microsoft Knowledge Base:
974648 Сукупний пакет оновлень пакета 6 для SQL Server 2005 Service Pack 3
Примітка. Оскільки будує сукупну версію, кожен новий випуск Fix містить всі виправлення та виправлення безпеки, які були включені до попередньої версії SQL Server 2005 Fix Release. Радимо застосувати найновішу версію виправлення, що містить це виправлення. Щоб отримати докладні відомості, клацніть номер цієї статті бази знань Microsoft:
960598 Інстальовано пакет оновлення SQL Server 2005, який було випущено після випуску пакета оновлень 3 для SQL Server 2005
Поточні виправлення Microsoft SQL Server 2005 створюються для певних пакетів оновлень для сервера SQL Server. Щоб інсталювати пакет оновлень 3 для SQL Server 2005, потрібно додати пакет оновлень 3 для SQL Server 2005. За замовчуванням будь-яке термінове виправлення, яке надається в пакеті оновлень SQL Server, включено до наступного пакета оновлень служби SQL Server.

SQL Server 2008

Виправлення для цієї проблеми уперше випущено в сукупному оновленні 7. Щоб отримати докладні відомості про отримання цього сукупного оновлення пакета SQL Server 2008, клацніть цей номер статті, щоб переглянути статтю в базі знань Microsoft Knowledge Base:
973601 Сукупний пакет оновлень пакета 7 для SQL Server 2008
Примітка. Оскільки будує сукупну версію, кожен новий випуск Fix містить всі виправлення та виправлення безпеки, які були включені до попередньої версії SQL Server 2008 Fix Release. Радимо застосувати найновішу версію виправлення, що містить це виправлення. Щоб отримати докладні відомості, клацніть номер цієї статті бази знань Microsoft:
956909 Інстальовано версії SQL Server 2008, випущені після випуску SQL Server 2008

SQL Server 2008 SP1

Виправлення для цієї проблеми уперше випущено в сукупному оновленні 7 для SQL Server 2008 Service Pack 1. Щоб отримати докладні відомості про цей пакет накопичувальне оновлення, клацніть номер статті в базі знань Microsoft Knowledge Base:
979065 Сукупний пакет оновлень пакета 7 для SQL Server 2008 Service Pack 1
Примітка. Оскільки будує сукупну версію, кожен новий випуск Fix містить всі виправлення та виправлення безпеки, які були включені до попередньої версії SQL Server 2008 Fix Release. Радимо застосувати найновішу версію виправлення, що містить це виправлення. Щоб отримати докладні відомості, клацніть номер цієї статті бази знань Microsoft:
970365 Випущено SQL Server 2008, що випущено після випуску пакета оновлень 1 (SP1) для SQL Server 2008
Поточні виправлення Microsoft SQL Server 2008 створюються для певних пакетів оновлень для сервера SQL Server. Щоб інсталювати пакет оновлень 1 (SP1) для SQL Server 2008, потрібно виконати термінове виправлення в SQL Server 2008 Service Pack 1. За замовчуванням будь-яке термінове виправлення, яке надається в пакеті оновлень SQL Server, включено до наступного пакета оновлень служби SQL Server.

SQL Server 2008 R2

У версії SQL Server 2008 R2 програма 4135 трасування, яка має бути невипадково пропущено зі списку позначок трасування, які можна керувати за допомогою-T4199. Однак, це було вирішено в сукупному оновленні 1 для SQL Server 2008 R2. Таким чином, для цієї збірки та для SQL Server 2005 і SQL Server 2008 підтримуються випуски,-T4199 буде достатньо, щоб активувати ці та інші позначки трасування, наведені в цій статті.

SQL Server 2012 і пізніші версії

Trace позначку 4199 включений у версії випусків SQL Server 2012 і пізніші версії.

Увімкнення позначки трасування 4199

Ви можете ввімкнути прапор трасування 4199 під час запуску або під час сеансу користувача. Цей прапор трасування має як ефект глобального рівня, так і рівня сеансу. Щоб активувати прапор трасування 4199, використовуйте команду DBCC TRACEON або використовувати – T 4199 як параметр запуску. Якщо у вас використовується DBCC TRACEON\TRACEOFF , це не регенерувати новий кешований план для збереження процедур. Плани можуть бути в кеші, створене без позначки трасування. Докладні відомості про ввімкнення або вимкнення позначок трасування та пояснення позначок для глобальних і сеансових трасування наведено в наведених нижче розділах на веб-сайті SQL Server Books Online:

Посилання


Щоб отримати докладні відомості про схему іменування для оновлень SQL Server, клацніть цей номер статті, щоб переглянути статтю в базі знань Microsoft Knowledge Base:
822499 Нова схема іменування для пакетів оновлень програмного забезпечення Microsoft SQL Server
Щоб отримати докладніші відомості про термінологію оновлення програмного забезпечення, клацніть номер статті в базі знань Microsoft Knowledge Base:
824684 Опис стандартної термінології, яка використовується для опису оновлень програмного забезпечення Microsoft