sys.query_store_query_variant (Transact-SQL)

Gilt für: SQL Server 2022 (16.x) und höhere Versionen von Azure SQL-DatenbankAzure SQL Managed InstanceSQL SQL database in Microsoft Fabric

Enthält Informationen zu den Beziehungen zwischen den ursprünglichen parametrisierten Abfragen (auch als übergeordnete Abfragen bezeichnet), Verteilerplänen und deren untergeordneten Abfragevarianten. Diese Katalogansicht zeigt alle Abfragevarianten, die mit einem Dispatcher verbunden sind, sowie die ursprünglichen parametrisierten Abfragen. Abfragevarianten haben denselben query_hash Wert wie aus sys.query_store_querybetrachtet. Wenn Sie sich mit sys.query_store_query und sys.query_store_runtime_statsverbindensys.query_store_query_variant, können Sie aggregierte Ressourcenverbrauchsstatistiken für Abfragen erhalten, die sich nur durch ihre Eingabewerte unterscheiden.

Spaltenname Datentyp Beschreibung
query_variant_query_id bigint Der Primärschlüssel. ID der parametrisierten Vertraulichen Abfragevariante.
parent_query_id bigint ID der ursprünglich parametrisierten Abfrage.
dispatcher_plan_id bigint ID des Planplans für parametersensitive Planoptimierung.

Hinweise

Da mehr als eine Abfragevariante mit einem einzigen Dispatcher-Plan verknüpft werden kann, gehören mehrere Pläne zu Abfragevarianten und tragen zur Gesamtressourcennutzungsstatistik der übergeordneten Abfrage bei. Der Dispatcher-Plan für Abfragevarianten erzeugt keine Laufzeitstatistiken im Abfragespeicher. Daher reichen bestehende Abfragespeicher-Abfragen nicht aus, um Gesamtstatistiken zu sammeln, es sei denn, man fügt einen zusätzlichen Join in die sys.query_store_query_variant Ansicht ein.

Berechtigungen

Erfordert die VIEW DATABASE STATE-Berechtigung.

Berechtigungen für SQL Server 2022 und höher

Erfordert die VIEW DATABASE PERFORMANCE STATE Berechtigung für die Datenbank.

Beispiele

Anzeigen Abfragespeicher Variant-Informationen

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

Anzeigen Abfragespeicher Verteiler- und Varianteninformationen

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