Аннотация
В этом обновлении представлен новый аргумент подсказок запроса, используется ПОДсказка, с помощью которой можно создать оптимизатор запросов без повышенных учетных данных или не входить в роль сервера sysadmin. Синтаксис этой новой подсказкы запроса напоминает следующее:
<query_hint > ::={USE HINT(N'key' [ [, ]...n ])}
В этом обновлении также представлены следующие варианты, которые можно использовать с аргументом " использовать ПОДсказку ".
Сочетани |
Эквивалентный флаг трассировки |
Описание |
Применимо к |
---|---|---|---|
ASSUME_JOIN_PREDICATE_DEPENDS_ON_FILTERS |
TF 9476 |
Вызывает SQL Server для создания плана запроса с использованием простого предположения о вложении, а не основного предположения по умолчанию для соединений в оптимизаторе запросов. Модель оценки кратности SQL server 2014 (12. x) или более поздней. |
|
ASSUME_MIN_SELECTIVITY_FOR_FILTER_ESTIMATES |
TF 4137 |
Приводит к тому, что SQL Server создает план с использованием минимальной избирательности при оценке и предикатах для учета корреляции для фильтров. Это имя подсказки параллельно флаг трассировки 4137 при использовании с моделью оценки количества элементов SQL server 2012 (11. x) и более ранних версий и имеет похожий эффект при использовании флага трассировки 9471 для модели оценки кратности SQL Server 2014 (12. x) или более поздней. |
|
DISABLE_BATCH_MODE_ADAPTIVE_JOINS |
Отключает адаптивные соединения пакетного режима. |
начиная с SQL Server 2017 |
|
DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACK |
Отключение предоставления обратной связи в памяти пакетного режима. |
начиная с SQL Server 2017 |
|
DISABLE_DEFERRED_COMPILATION_TV |
Отключает отложенную компиляцию переменной таблицы. |
начиная с SQL Server 2019 |
|
DISABLE_INTERLEAVED_EXECUTION_TVF |
Отключение чередования для функций, возвращающих табличное значение с несколькими инструкциями. |
начиная с SQL Server 2017 |
|
DISABLE_OPTIMIZED_NESTED_LOOP |
TF 2340 |
Указывает, что обработчик запросов не должен использовать операцию сортировки (пакетную сортировку) для оптимизированных вложенных соединений цикла при формировании плана запроса. |
|
DISABLE_OPTIMIZER_ROWGOAL |
TF 4138 |
Приводит к тому, что SQL Server создает план, который не использует изменения цели строки в запросах, содержащих указанные ниже ключевые слова.
|
|
DISABLE_PARAMETER_SNIFFING |
TF 4136 |
Указывает оптимизатору запросов, что следует использовать среднее распределение данных при компиляции запроса с одним или несколькими параметрами. Эта инструкция делает план запроса независимым от значения параметра, который был первоначально использован при компиляции запроса. Используйте эту подсказку, чтобы переопределить параметр конфигурации уровня базы данных PARAMETER_SNIFFING = Off .. |
|
DISABLE_ROW_MODE_MEMORY_GRANT_FEEDBACK |
Отключение режима строки предоставление обратной связи в памяти. |
начиная с SQL Server 2019 |
|
DISABLE_TSQL_SCALAR_UDF_INLINING |
Отключение скалярной подстановки UDF. |
начиная с SQL Server 2019 |
|
DISALLOW_BATCH_MODE |
Отключение выполнения пакетного режима. |
начиная с SQL Server 2019 |
|
ENABLE_HIST_AMENDMENT_FOR_ASC_KEYS |
TF 4139 |
Включает автоматическое создание быстрой статистики (поправки гистограммы) для столбца с ведущим индексом, для которого требуется оценка количества элементов. Гистограмма, используемая для оценки мощности, будет скорректирована во время компиляции запроса для учета фактического максимального или минимального значения этого столбца. |
|
ENABLE_QUERY_OPTIMIZER_HOTFIXES |
TF 4199 |
Включает исправления оптимизатора запросов (изменения, выпускаемые в накопительных обновлениях и пакетах обновления для SQL Server). Используйте эту подсказку для переопределения Параметр конфигурации уровня базы данных QUERY_OPTIMIZER_HOTFIXES = on. |
|
FORCE_DEFAULT_CARDINALITY_ESTIMATION |
TF 9481 |
Принудительное использование оптимизатора запросов Модель оценки кратности , которая соответствует текущему уровню совместимости базы данных. Используйте эту подсказку для переопределения Параметр конфигурации уровня базы данных LEGACY_CARDINALITY_ESTIMATION = on. |
|
FORCE_LEGACY_CARDINALITY_ESTIMATION |
TF 9481 |
Принудительное использование оптимизатора запросов Модель оценки кратности SQL server 2012 (11. x) и более ранних версий. Используйте эту подсказку, чтобы переопределить параметр конфигурации уровня базы данных LEGACY_CARDINALITY_ESTIMATION = on .. |
|
QUERY_OPTIMIZER_COMPATIBILITY_LEVEL_n |
Вызывает принудительное поведение оптимизатора запросов на уровне запроса. Такое поведение происходит, как если бы запрос был скомпилирован с уровнем совместимости базы данных. n, где n — поддерживаемый уровень совместимости баз данных. Ссылка наsys.dm_exec_valid_use_hints список поддерживаемых в настоящее время значений для n. |
начиная с SQL Server 2017 (14. x) CU10 |
Дополнительные сведения можно найти в разделе Советы (Transact-SQL)-Query.
Дополнительная информация
Это обновление входит в состав пакета обновления 1 (SP1) для SQL Server 2016.
Каждая новая сборка для SQL Server 2016 содержит все исправления и все исправления для системы безопасности, которые были включены в предыдущую сборку. Мы рекомендуем установить последнюю сборку для SQL server 2016.
Сценарии, в которых поведение оптимизатора запросов SQL Server (QO) необходимо указывать довольно часто, и традиционно они решаются с помощью нескольких (задокументированных и недокументированных) флагов трассировки. Тем не менее, если флаги трассировки заданы глобально, они могут негативно повлиять на другие рабочие нагрузки. Кроме того, включение сеансов для каждого сеанса нецелесообразно для существующих приложений, и при этом для каждого запроса с параметром QUERYTRACEON требуется членство в фиксированной роли сервера sysadmin. (Несмотря на то, что вы можете обойти эту проблему с помощью руководства плана или хранимой процедуры, по-прежнему требуются учетные данные с повышенными привилегиями.) Флаги трассировки используются для временного задания конкретных характеристик сервера или переключения определенного поведения, поэтому они могут быть сложны для управления и понимания. Сведения о флагах трассировки можно найти в разделе Флаги трассировки (Transact-SQL) на веб-сайте Microsoft Developer Network (MSDN).
Ссылки
Ознакомьтесь с терминологией , которую корпорация Майкрософт использует для описания обновлений программного обеспечения.