sys.query_store_query_variant (Transact-SQL)
Aplica-se a: SQL Server 2022 (16.x)
Contém informações sobre as relações pai-filho entre as consultas parametrizadas originais (também conhecidas como consultas pai), planos do dispatcher e suas variantes de consulta filho. Essa exibição de catálogo oferece a capacidade de visualizar todas as variantes de consulta associadas a um dispatcher, bem como as consultas parametrizadas originais. As variantes de consulta terão o mesmo valor de query_hash exibido na exibição de catálogo sys.query_store_query, que, quando unidas às exibições de catálogo sys.query_store_query_variant e sys.query_store_runtime_stats, as estatísticas agregadas de uso de recursos podem ser obtidas para consultas que diferem apenas por seus valores de entrada.
Nome da coluna | Tipo de dados | Descrição |
---|---|---|
query_variant_query_id | bigint | Chave primária. ID da variante de consulta confidencial parametrizada. |
parent_query_id | bigint | ID da consulta parametrizada original. |
dispatcher_plan_id | bigint | ID do plano do dispatcher de otimização de plano sensível a parâmetros. |
Comentários
Como mais de uma variante de consulta pode ser associada a um plano de dispatcher, haverá vários planos que pertencem a variantes de consulta que eventualmente serão adicionadas às estatísticas gerais de uso de recursos da consulta pai. O plano do dispatcher para variantes de consulta não produz nenhuma estatística de runtime no Repositório de Consultas, o que fará com que as consultas existentes do Repositório de Consultas não sejam mais suficientes ao coletar estatísticas gerais, a menos que uma junção adicional à exibição query_store_query_variant seja incluída.
Permissões
Exige a permissão VIEW DATABASE STATE.
Exemplos
Exibir informações de variantes do Repositório de Consultas
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
Exibir informações do dispatcher e da variante do Repositório de Consultas
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
Confira também
- 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)
- Monitorando o desempenho com o repositório de consultas
- Exibições do Catálogo (Transact-SQL)
- Procedimentos armazenados do Repositório de Consultas (Transact-SQL)