sys.query_store_query_variant (Transact-SQL)

Gäller för: SQL Server 2022 (16.x) och senare versioner Azure SQL DatabaseAzure SQL Managed InstanceSQL Database i Microsoft Fabric

Innehåller information om relationerna mellan överordnade och underordnade mellan de ursprungliga parametriserade frågorna (kallas även överordnade frågor), dispatcher-planer och deras underordnade frågevarianter. Denna katalogvy visar alla frågevarianter kopplade till en dispatcher och de ursprungliga parameteriserade frågorna. Frågevarianter har samma query_hash värde som betraktade från sys.query_store_query. När du joinar sys.query_store_query_variantsys.query_store_query med och sys.query_store_runtime_stats, kan du få aggregerade resursanvändningsstatistik för frågor som endast skiljer sig åt genom sina indatavärden.

Kolumnnamn Datatyp Beskrivning
query_variant_query_id bigint Primärnyckel. ID för den parametriserade varianten av känslig fråga.
parent_query_id bigint ID för den ursprungliga parametriserade frågan.
dispatcher_plan_id bigint ID för parametern sensitive plan optimization dispatcher plan.

Anmärkningar

Eftersom mer än en frågevariant kan kopplas till en enda dispatcherplan, tillhör flera planer frågevarianter och bidrar till den övergripande resursanvändningsstatistiken för den övergripande föräldrafrågan. Dispatcherplanen för frågevarianter producerar inte körtidsstatistik i Query Store. Som ett resultat är befintliga Query Store-frågor inte tillräckliga för att samla in total statistik om du inte inkluderar en extra join till vynsys.query_store_query_variant.

Behörigheter

Kräver behörigheten VIEW DATABASE STATE .

Behörigheter för SQL Server 2022 och senare

Kräver VIEW DATABASE PERFORMANCE STATE behörighet för databasen.

Exempel

Visa variantinformation för 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

Visa query store dispatcher och variantinformation

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