sys.query_store_query_variant (Transact-SQL)
S’applique à : SQL Server 2022 (16.x)
Contient des informations sur les relations parent-enfant entre les requêtes paramétrables d’origine (également appelées requêtes parentes), les plans de répartiteur et leurs variantes de requête enfant. Cet affichage catalogue offre la possibilité d’afficher toutes les variantes de requête associées à un répartiteur, ainsi que les requêtes paramétrables d’origine. Les variantes de requête auront la même valeur de query_hash que dans l’affichage catalogue sys.query_store_query, qui, lorsqu’elles sont jointes aux vues catalogue sys.query_store_query_variant et sys.query_store_runtime_stats, les statistiques agrégées d’utilisation des ressources peuvent être obtenues pour les requêtes qui diffèrent uniquement par leurs valeurs d’entrée.
Nom de la colonne | Type de données | Description |
---|---|---|
query_variant_query_id | bigint | Clé primaire ID de la variante de requête sensible paramétrable. |
parent_query_id | bigint | ID de la requête paramétrable d’origine. |
dispatcher_plan_id | bigint | ID du plan de répartiteur d’optimisation du plan sensible aux paramètres. |
Notes
Étant donné que plusieurs variantes de requête peuvent être associées à un plan de répartiteur, plusieurs plans appartiennent à des variantes de requête qui finissent par s’ajouter aux statistiques globales d’utilisation des ressources de la requête parente. Le plan de répartiteur pour les variantes de requête ne produit pas de statistiques d’exécution dans le Magasin des requêtes, ce qui entraîne la suppression des requêtes Magasin des requêtes existantes lors de la collecte de statistiques globales, sauf si une jointure supplémentaire à la vue query_store_query_variant est incluse.
Autorisations
Nécessite l’autorisation VIEW DATABASE STATE.
Exemples
Afficher Magasin des requêtes informations sur les variantes
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
Afficher Magasin des requêtes informations sur le répartiteur et les variantes
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
Voir aussi
- 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)
- Analyse des performances à l’aide du magasin de requêtes
- Affichages catalogue (Transact-SQL)
- Procédures stockées du Magasin des requêtes (Transact-SQL)