Обновление содержит аргумент подсказки запроса ИСПОЛЬЗОВАТЬ ПОДСКАЗКУ в SQL Server 2016

Применимо к: SQL Server 2016 DeveloperSQL Server 2016 EnterpriseSQL Server 2016 Enterprise Core Больше

Аннотация


Это обновление вводит новый аргумент подсказку запроса, Используйте ПОДСКАЗКУ, позволяющего диск оптимизатор запросов без повышенных учетные данные или не являясь членом серверной роли sysadmin. Синтаксис этой новой подсказки запроса будет выглядеть примерно так:
<query_hint > ::={USE HINT(N'key' [ [, ]...n ])}
Это обновление также содержит следующие параметры подсказки, которые можно использовать с аргументом Использовать ПОДСКАЗКУ .
Параметр Эквивалентный флаг трассировки Описание Применяется к
ASSUME_JOIN_PREDICATE_DEPENDS_ON_FILTERS TF 9476 В результате SQL Server для формирования плана запроса с использованием допущений вложенности вместо допущения вложенность базы по умолчанию для соединений в разделе оптимизатор запросов Оценка количества элементов модель: 2014 SQL Server (12.x) или более поздней версии.  
ASSUME_MIN_SELECTIVITY_FOR_FILTER_ESTIMATES TF 4137 Приводит к SQL Server для создания плана с помощью минимального избирательность при оценке и предикаты фильтров для учетной записи для корреляции. Это имя подсказки параллельно модель оценки мощности 2014 SQL Server (12.x используется флаг 4137 при использовании модели оценки мощности SQL Server 2012 (11.x) и более ранних версиях и имеет аналогичный эффект при трассировке флаг трассировки 9471 ) или более поздней версии.  
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 для создания плана, который не использует цель изменений строк с запросами, содержащими эти ключевые слова:

  • Вверх
  • ПАРАМЕТР (БЫСТРЫЙ N)
  • В
  • СУЩЕСТВУЕТ
 
DISABLE_PARAMETER_SNIFFING TF 4136 Instructs оптимизатор запросов будет использовать распределение среднего значения данных во время компиляции запроса с одним или несколькими параметрами. Эта инструкция делает план запроса зависит на значение параметра, который сначала был использован при компиляции запроса. Позволяет переопределить конфигурацию базы данных области эта подсказка параметр 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) - запрос.

Дополнительная информация


Это обновление включено в Пакет обновления 1 для SQL Server 2016.
Сценарии, в котором поведение оптимизатора запросов SQL Server должно иметь подсказки, являются довольно общими и обычно описываются с помощью нескольких флагов трассировки (документированых и недокументированных). Однако когда флаги трассировки установлены глобально, они могут иметь неблагоприятное воздействие на другие задачи. Кроме того, позволяя им сеансов нецелесообразно с существующими приложениями и их включении для запросов с QUERYTRACEON ПАРАМЕТРА необходимо членство в фиксированной серверной роли sysadmin. (Хотя это можно обойти, используя руководство плана или хранимую процедуру, но повышенные права учетных данных по-прежнему необходимы.) Флаги трассировки используются для временной установки определенных характеристик сервера или отключения определенного поведения. Ими можно быть трудно управлять и их трудно понимать. Дополнительные сведения о флагах трассировки см Флаги трассировки (Transact-SQL) на веб-узле Microsoft Developer Network (MSDN).

Ссылки


Дополнительные сведения о терминологии , которую корпорация Майкрософт использует для описания обновлений программного обеспечения.