Aracılığıyla paylaş


sys.query_store_query_variant (Transact-SQL)

Şunlar için geçerlidir: SQL Server 2022 (16.x) ve sonraki sürümleri Microsoft Fabric'teAzure SQL VeritabanıAzure SQL Yönetilen Örneği SQL veritabanı

Özgün parametreli sorgular (üst sorgular olarak da bilinir), dağıtıcı planları ve alt sorgu değişkenleri arasındaki üst-alt ilişkiler hakkında bilgi içerir. Bu katalog görünümü, bir dağıtıcıyla ilişkili tüm sorgu değişkenlerini ve özgün parametreli sorguları görüntüleme olanağı sunar. Sorgu varyantları, sys.query_store_query katalog görünümünde görüntülenenle aynı query_hash değere sahip olur. Bu değer, sys.query_store_query_variant ve sys.query_store_runtime_stats katalog görünümleriyle birleştirildiğinde, yalnızca giriş değerlerine göre farklılık gösteren sorgular için toplam kaynak kullanımı istatistikleri elde edilebilir.

Sütun adı Veri tipi Açıklama
query_variant_query_id bigint Birincil anahtar. Parametreli hassas sorgu değişkeninin kimliği.
parent_query_id bigint Özgün parametreli sorgunun kimliği.
dispatcher_plan_id bigint Parametreye duyarlı plan iyileştirme dağıtıcı planının kimliği.

Açıklamalar

Bir dağıtıcı planıyla birden fazla sorgu değişkeni ilişkilendirilebileceği için, sorgu varyantlarına ait olan ve sonunda üst sorgunun genel kaynak kullanım istatistiklerine eklenecek birden çok plan olacaktır. Sorgu değişkenleri için dağıtıcı planı Sorgu Deposu'nda çalışma zamanı istatistikleri üretmez ve bu da query_store_query_variant görünümüne ek bir katılım dahil edilmediği sürece genel istatistikler toplanırken mevcut Sorgu Deposu sorgularının artık yeterli olmamasını sağlar.

İzinler

VIEW DATABASE STATE izni gerektirir.

Örnekler

Sorgu Deposu değişken bilgilerini görüntüleme

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

Sorgu Deposu dağıtıcısı ve değişken bilgilerini görüntüleme

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

Ayrıca Bkz.