Bagikan melalui


sys.query_store_query_variant (T-SQL)

Berlaku untuk: SQL Server 2022 (16.x) dan versi yang lebih baru database Azure SQL DatabaseAzure SQL Managed InstanceSQL di Microsoft Fabric

Berisi informasi tentang hubungan induk-anak antara kueri berparameter asli (juga dikenal sebagai kueri induk), paket dispatcher, dan varian kueri anak mereka. Tampilan katalog ini menawarkan kemampuan untuk melihat semua varian kueri yang terkait dengan dispatcher serta kueri parameter asli. Varian kueri akan memiliki nilai query_hash yang sama seperti yang dilihat dari dalam tampilan katalog sys.query_store_query, yang ketika digabungkan dengan tampilan katalog sys.query_store_query_variant dan sys.query_store_runtime_stats, statistik penggunaan sumber daya agregat dapat diperoleh untuk kueri yang hanya berbeda dengan nilai inputnya.

Nama kolom Jenis data Deskripsi
query_variant_query_id bigint Kunci primer. ID varian kueri sensitif berparameter.
parent_query_id bigint ID kueri parameter asli.
dispatcher_plan_id bigint ID paket pengoptimalan paket sensitif parameter dispatcher.

Keterangan

Karena lebih dari satu varian kueri dapat dikaitkan dengan satu paket dispatcher, akan ada beberapa paket yang termasuk dalam varian kueri yang akhirnya akan ditambahkan ke statistik penggunaan sumber daya keseluruhan kueri induk. Paket dispatcher untuk varian kueri tidak menghasilkan statistik runtime apa pun di Penyimpanan Kueri, yang akan menyebabkan kueri Penyimpanan Kueri yang ada tidak lagi cukup saat mengumpulkan statistik keseluruhan kecuali gabungan tambahan ke tampilan query_store_query_variant disertakan.

Izin

Memerlukan izin TAMPILKAN STATUS DATABASE.

Contoh

Menampilkan informasi varian Penyimpanan Kueri

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

Menampilkan informasi dispatcher dan varian Penyimpanan Kueri

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

Lihat Juga