sys.query_store_query_variant (Transact-SQL)
Si applica a: SQL Server 2022 (16.x)
Contiene informazioni sulle relazioni padre-figlio tra le query con parametri originali (note anche come query padre), i piani dispatcher e le relative varianti di query figlio. Questa vista del catalogo offre la possibilità di visualizzare tutte le varianti di query associate a un dispatcher e le query con parametri originali. Le varianti di query avranno lo stesso valore query_hash visualizzato dall'interno della vista del catalogo sys.query_store_query, che quando viene unita alle viste del catalogo sys.query_store_query_variant e sys.query_store_runtime_stats, è possibile ottenere statistiche di utilizzo delle risorse aggregate per le query che differiscono solo per i relativi valori di input.
Nome colonna | Tipo di dati | Descrizione |
---|---|---|
query_variant_query_id | bigint | Chiave primaria. ID della variante di query sensibile con parametri. |
parent_query_id | bigint | ID della query con parametri originale. |
dispatcher_plan_id | bigint | ID del piano dispatcher di ottimizzazione del piano sensibile ai parametri. |
Osservazioni:
Poiché più varianti di query possono essere associate a un piano dispatcher, saranno presenti più piani che appartengono a varianti di query che alla fine aggiungeranno alle statistiche di utilizzo complessive delle risorse della query padre. Il piano dispatcher per le varianti di query non produce statistiche di runtime in Query Store, che causerà l'assenza di query esistenti di Query Store quando si raccolgono statistiche complessive, a meno che non sia incluso un join aggiuntivo alla visualizzazione query_store_query_variant .
Autorizzazioni
Richiede l'autorizzazione VIEW DATABASE STATE .
Esempi
Visualizzare le informazioni sulle varianti di Query Store
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
Visualizzare le informazioni sul dispatcher e sulle varianti di Query Store
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
Vedi anche
- 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)
- Monitoraggio delle prestazioni tramite Query Store
- Viste del catalogo (Transact-SQL)
- Stored procedure di Query Store (Transact-SQL)