sys.query_store_plan (Transact-SQL)

Применимо к: даSQL Server 2016 (13.x); и более поздние версии ДаБаза данных SQL Azure ДаУправляемый экземпляр SQL Azure даAzure Synapse Analytics

Содержит сведения о каждом плане выполнения, связанном с запросом.

Имя столбца Тип данных Описание
plan_id bigint Первичный ключ.
query_id bigint Внешний ключ. присоединение к sys.query_store_query ()Transact-SQL .
plan_group_id bigint Идентификатор группы планов. Для запросов курсоров обычно требуется несколько планов (заполнение и получение). Заполнять и выборке собранные планы находятся в одной группе.

0 означает, что план не входит в группу.
engine_version nvarchar(32) Версия подсистемы, используемой для компиляции плана в формате "основной. дополнительный. сборка. Редакция" .
compatibility_level smallint Уровень совместимости базы данных, на который ссылается запрос.
query_plan_hash Binary (8) Хэш MD5 отдельного плана.
query_plan nvarchar(max) Инструкция Showplan XML для плана запроса.
is_online_index_plan bit План использовался при построении индекса в режиме «в сети».
Примечание. Azure синапсе Analytics всегда возвращает ноль (0).
is_trivial_plan bit План является тривиальным планом (выходные данные на этапе 0 оптимизатора запросов).
Примечание. Azure синапсе Analytics всегда возвращает ноль (0).
is_parallel_plan bit План является параллельным.
Примечание. Azure синапсе Analytics всегда будет возвращать один (1).
is_forced_plan bit План помечается как принудительный, когда пользователь выполняет хранимую процедуру sys.sp_query_store_force_plan. Принудительный механизм не гарантирует , что именно этот план будет использоваться для запроса, на который ссылается query_id. Форсирование плана вызывает повторную компиляцию запроса и, как правило, создает тот же или аналогичный план для плана, на который ссылается plan_id. Если форсирование плана не выполняется, force_failure_count увеличивается, а last_force_failure_reason заполняется причиной сбоя.
Примечание. Azure синапсе Analytics всегда возвращает ноль (0).
is_natively_compiled bit План включает оптимизированные для обработки в памяти процедуры. (0 = FALSE, 1 = TRUE).
Примечание. Azure синапсе Analytics всегда возвращает ноль (0).
force_failure_count bigint Число неудачных попыток принудительного выполнения плана. Его можно увеличить, только если запрос перекомпилируется (не при каждом выполнении). Он сбрасывается в 0 каждый раз, is_plan_forced меняется с false на true.
Примечание. Azure синапсе Analytics всегда возвращает ноль (0).
last_force_failure_reason int Причина сбоя принудительного применения плана.

0: нет ошибки, в противном случае — номер ошибки, вызвавшей сбой принудительного выполнения

8637: ONLINE_INDEX_BUILD

8683: INVALID_STARJOIN

8684: TIME_OUT

8689: NO_DB

8690: HINT_CONFLICT

8691: SETOPT_CONFLICT

8694: DQ_NO_FORCING_SUPPORTED

8698: NO_PLAN

8712: NO_INDEX

8713: VIEW_COMPILE_FAILED

<other value>: GENERAL_FAILURE
Примечание. Azure синапсе Analytics всегда возвращает ноль (0).
last_force_failure_reason_desc nvarchar(128) Текстовое описание last_force_failure_reason_desc.

ONLINE_INDEX_BUILD: запрос пытается изменить данные, в то время как Целевая таблица имеет индекс, который строится в режиме "в сети"

INVALID_STARJOIN: Plan содержит недопустимую спецификацию Старжоин

TIME_OUT: оптимизатор превысил количество разрешенных операций при поиске плана, указанного принудительным планом

NO_DB: база данных, указанная в плане, не существует

HINT_CONFLICT: не удается скомпилировать запрос, так как возник конфликт плана с указанием запроса

DQ_NO_FORCING_SUPPORTED: не удается выполнить запрос, так как планирование конфликтов с использованием распределенных запросов или полнотекстовых операций.

NO_PLAN: обработчику запросов не удалось создать план запроса, так как принудительный план не может быть проверен на допустимость для запроса

NO_INDEX: индекс, указанный в плане, больше не существует

VIEW_COMPILE_FAILED: не удалось принудительно выполнить план запроса из-за проблемы в индексированном представлении, на которое ссылается план

GENERAL_FAILURE: Общая ошибка принудительного выполнения (не рассматривается по причинам выше)
Примечание. Azure синапсе Analytics всегда будет возвращать значение None.
count_compiles bigint Планирование статистики компиляции.
initial_compile_start_time datetimeoffset Планирование статистики компиляции.
last_compile_start_time datetimeoffset Планирование статистики компиляции.
last_execution_time datetimeoffset Время последнего выполнения ссылается на последнее время окончания запроса или плана.
avg_compile_duration float Планирование статистики компиляции.
last_compile_duration bigint Планирование статистики компиляции.
plan_forcing_type int Тип форсирования плана.

0: НЕТ

1: ВРУЧНУЮ

2: АВТО
plan_forcing_type_desc nvarchar(60) Текстовое описание plan_forcing_type.

Нет: нет форсирования плана

ВРУЧНУЮ: планирование принудительно пользователем

AUTO: планирование принудительно по автоматической настройке

Ограничения принудительного использования планов

Хранилище запросов имеет механизм, позволяющий оптимизатору запросов принудительно применить определенный план выполнения. Но существуют некоторые ограничения, которые могут препятствовать применению плана.

Во-первых, когда план содержит следующие конструкции:

  • Инструкция INSERT BULK.
  • ссылка на внешнюю таблицу;
  • распределенный запрос или полнотекстовые операции;
  • использование глобальных запросов.
  • Динамические курсоры или наборы ключей
  • Недопустимая спецификация соединения типа "звезда"

Примечание

для статических и быстрых курсоров поддерживается форсирование планов База данных SQL Azure и SQL Server 2019.

Во-вторых, когда объекты, от которых зависит план, больше не доступны:

  • база данных (если база данных, где план был создан изначально, больше не существует);
  • индекс (больше не существует или отключен).

Наконец, проблемы с самим планом:

  • недопустим для запроса;
  • оптимизатор запросов превысил количество разрешенных операций;
  • неправильно сформированный XML-код плана.

Разрешения

Требуется разрешение View Database State .

См. также

sys.database_query_store_options (Transact-SQL)
sys.query_context_settings (Transact-SQL)
sys.query_store_query (Transact-SQL)
sys.query_store_query_text (Transact-SQL)
sys.query_store_runtime_stats (Transact-SQL)
sys.query_store_wait_stats (Transact-SQL)
sys.query_store_runtime_stats_interval (Transact-SQL)
Мониторинг производительности с использованием хранилища запросов
Представления каталога (Transact-SQL)
Хранимые процедуры хранилища запросов (Transact-SQL)