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

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

Версії 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

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

Отримуйте нові функції раніше за інших
Приєднатися до Microsoft оцінювачів

Чи були ці відомості корисні?

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

Дякуємо, що знайшли час і надіслали нам відгук! Можливо, у нас не буде часу відповісти на кожен коментар, але докладемо максимум зусиль, щоб переглянути їх усі. Вас цікавить, як ми використовуємо ваші відгуки?

×