В документации от Microsoft есть опция для БД QUERY_OPTIMIZER_HOTFIXES
https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-database-scoped-configuration-transact-sql
В частности там сказано:
А как понять какие именно hotfix включаем при включении этой опции на БД?
Если почитать справку по Trace Flag 4199, то там следующее:
https://docs.microsoft.com/ru-ru/sql/t-sql/database-console-commands/dbcc-traceon-trace-flags-transact-sql
(см. вложение)
Уровень совместимости базы данных = 140
TF 4199 = включен\выключен
Изменяет QO из предыдущих уровней совместимости базы данных = включено\включено
QO изменения для текущей версии RTM post = включено\выключено
Т.е. я правильно понимаю, что если у меня версия сервера например MS SQL 2016 SP1 CU3, то с выключенным флагом hotfix-ов нет (версия соответствует RTM), а если я её включу, то "включатся" всеп hotfix-ы для QO для
CU1 (https://support.microsoft.com/en-us/help/3208177),
CU2 (https://support.microsoft.com/en-us/help/4013106),
CU3 (https://support.microsoft.com/en-us/help/4019916)?
https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-database-scoped-configuration-transact-sql
В частности там сказано:
автор |
---|
QUERY_OPTIMIZER_HOTFIXES = { ON | OFF | PRIMARY } Enables or disables query optimization hotfixes regardless of the compatibility level of the database. The default is OFF, which disables query optimization hotfixes that were released after the highest available compatibility level was introduced for a specific version (post-RTM). Setting this to ON is equivalent to enabling Trace Flag 4199. |
А как понять какие именно hotfix включаем при включении этой опции на БД?
Если почитать справку по Trace Flag 4199, то там следующее:
https://docs.microsoft.com/ru-ru/sql/t-sql/database-console-commands/dbcc-traceon-trace-flags-transact-sql
(см. вложение)
Уровень совместимости базы данных = 140
TF 4199 = включен\выключен
Изменяет QO из предыдущих уровней совместимости базы данных = включено\включено
QO изменения для текущей версии RTM post = включено\выключено
Т.е. я правильно понимаю, что если у меня версия сервера например MS SQL 2016 SP1 CU3, то с выключенным флагом hotfix-ов нет (версия соответствует RTM), а если я её включу, то "включатся" всеп hotfix-ы для QO для
CU1 (https://support.microsoft.com/en-us/help/3208177),
CU2 (https://support.microsoft.com/en-us/help/4013106),
CU3 (https://support.microsoft.com/en-us/help/4019916)?