Freigeben über


sys.query_store_query_variant (Transact-SQL)

Gilt für: SQL Server 2022 (16.x)

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 bietet die Möglichkeit, alle Abfragevarianten anzuzeigen, die einem Dispatcher zugeordnet sind, sowie die ursprünglich parametrisierten Abfragen. Abfragevarianten haben den gleichen query_hash Wert wie in der sys.query_store_query Katalogansicht angezeigt, die bei der Verbindung mit den sys.query_store_query_variant- und sys.query_store_runtime_stats Katalogansichten aggregierte Ressourcennutzungsstatistiken für Abfragen abgerufen werden können, die sich nur von ihren Eingabewerten 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 mehrere Abfragevarianten einem Verteilerplan zugeordnet werden können, gibt es mehrere Pläne, die zu Abfragevarianten gehören, die schließlich zur Gesamtstatistik der Ressourcennutzung der übergeordneten Abfrage hinzugefügt werden. Der Dispatcherplan für Abfragevarianten erzeugt in der Abfragespeicher keine Laufzeitstatistiken, was dazu führt, dass vorhandene Abfragespeicher Abfragen nicht mehr ausreichen, wenn allgemeine Statistiken erfasst werden, es sei denn, eine zusätzliche Verknüpfung zur query_store_query_variant Ansicht ist enthalten.

Berechtigungen

Erfordert die Berechtigung VIEW DATABASE STATE.

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

Weitere Informationen