sys.query_store_query_variant (Transact-SQL)
Область применения: SQL Server 2022 (16.x)
Содержит сведения о отношениях "родительский-дочерний" между исходными параметризованными запросами (также известными как родительские запросы), планами диспетчера и их дочерними вариантами запросов. Это представление каталога позволяет просматривать все варианты запросов, связанные с диспетчером, а также исходные параметризованные запросы. Варианты запросов будут иметь то же query_hash значение, что и в представлении каталога sys.query_store_query, которое при присоединении к представлениям sys.query_store_query_variant и sys.query_store_runtime_stats каталога статистические данные об использовании ресурсов можно получить для запросов, которые отличаются только входными значениями.
Имя столбца | Тип данных | Описание: |
---|---|---|
query_variant_query_id | bigint | Первичный ключ. Идентификатор параметризованного варианта конфиденциального запроса. |
parent_query_id | bigint | Идентификатор исходного параметризованного запроса. |
dispatcher_plan_id | bigint | Идентификатор плана диспетчера оптимизации с учетом параметров. |
Замечания
Так как несколько вариантов запроса могут быть связаны с одним планом диспетчера, будет несколько планов, принадлежащих вариантам запросов, которые в конечном итоге будут добавляться в общую статистику использования ресурсов родительского запроса. План диспетчера для вариантов запросов не создает статистику среды выполнения в хранилище запросов, что приведет к тому, что существующие запросы хранилища запросов больше не будут достаточными при сборе общей статистики, если только не включено дополнительное соединение с представлением query_store_query_variant .
Разрешения
Необходимо разрешение VIEW DATABASE STATE.
Примеры
Просмотр сведений о варианте хранилища запросов
SELECT
qspl.plan_type_desc AS query_plan_type,
qspl.plan_id as query_store_planid,
qspl.query_id as query_store_queryid,
qsqv.query_variant_query_id as query_store_variant_queryid,
qsqv.parent_query_id as query_store_parent_queryid,
qsqv.dispatcher_plan_id as query_store_dispatcher_planid,
OBJECT_NAME(qsq.object_id) as module_name,
qsq.query_hash,
qsqtxt.query_sql_text,
convert(xml,qspl.query_plan)as show_plan_xml,
qsrs.last_execution_time as last_execution_time,
qsrs.count_executions AS number_of_executions,
qsq.count_compiles AS number_of_compiles
FROM sys.query_store_runtime_stats AS qsrs
JOIN sys.query_store_plan AS qspl
ON qsrs.plan_id = qspl.plan_id
JOIN sys.query_store_query_variant qsqv
ON qspl.query_id = qsqv.query_variant_query_id
JOIN sys.query_store_query as qsq
ON qsqv.parent_query_id = qsq.query_id
JOIN sys.query_store_query_text AS qsqtxt
ON qsq.query_text_id = qsqtxt .query_text_id
ORDER BY qspl.query_id, qsrs.last_execution_time;
GO
Просмотр сведений о диспетчере хранилища запросов и вариантах
SELECT
qspl.plan_type_desc AS query_plan_type,
qspl.plan_id as query_store_planid,
qspl.query_id as query_store_queryid,
qsqv.query_variant_query_id as query_store_variant_queryid,
qsqv.parent_query_id as query_store_parent_queryid,
qsqv.dispatcher_plan_id as query_store_dispatcher_planid,
qsq.query_hash,
qsqtxt.query_sql_text,
CONVERT(xml,qspl.query_plan)as show_plan_xml,
qsq.count_compiles AS number_of_compiles,
qsrs.last_execution_time as last_execution_time,
qsrs.count_executions AS number_of_executions
FROM sys.query_store_query qsq
LEFT JOIN sys.query_store_query_text qsqtxt
ON qsq.query_text_id = qsqtxt.query_text_id
LEFT JOIN sys.query_store_plan qspl
ON qsq.query_id = qspl.query_id
LEFT JOIN sys.query_store_query_variant qsqv
ON qsq.query_id = qsqv.query_variant_query_id
LEFT JOIN sys.query_store_runtime_stats qsrs
ON qspl.plan_id = qsrs.plan_id
LEFT JOIN sys.query_store_runtime_stats_interval qsrsi
ON qsrs.runtime_stats_interval_id = qsrsi.runtime_stats_interval_id
WHERE qspl.plan_type = 1 or qspl.plan_type = 2
ORDER BY qspl.query_id, qsrs.last_execution_time;
GO
См. также
- sys.query_store_plan (Transact-SQL)
- sys.query_store_query (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)