Dela via


sys.query_store_query_variant (Transact-SQL)

gäller för: SQL Server 2022 (16.x)

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. Den här katalogvyn ger möjlighet att visa alla frågevarianter som är associerade med en dispatcher samt de ursprungliga parametriserade frågorna. Frågevarianter har samma query_hash värde som det som visas i sys.query_store_query katalogvyn, som när de är anslutna till sys.query_store_query_variant- och sys.query_store_runtime_stats katalogvyer kan sammanställd resursanvändningsstatistik hämtas för frågor som endast skiljer sig åt med deras 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 associeras med en dispatcher-plan finns det flera planer som tillhör frågevarianter som så småningom kommer att lägga till den övergripande resursanvändningsstatistiken för den överordnade frågan. Dispatcher-planen för frågevarianter producerar ingen körningsstatistik i Query Store, vilket gör att befintliga Query Store-frågor inte längre räcker när du samlar in övergripande statistik om inte ytterligare en koppling till query_store_query_variant-vyn ingår.

Behörigheter

Kräver behörigheten VIEW DATABASE STATE.

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

Se även