ОСНОВНІ ВІДОМОСТІ
Версії 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 |
Позначка трасування |
---|---|
4101 |
|
4102 |
|
4103 |
|
4104 |
|
4105 |
|
4106 |
|
4107 |
|
4108 |
|
4109 |
|
4110 |
|
4111 |
|
4115 |
|
4116 |
|
4117 |
|
4119 |
|
4120 |
|
4121 |
|
4122 |
|
4124 |
|
4125 |
|
4126 |
|
4127 |
|
4128 |
|
4129 |
|
4131 |
|
4133 |
|
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