sys.query_store_query_variant (Transact-SQL)
van toepassing op: SQL Server 2022 (16.x)
Bevat informatie over de bovenliggende en onderliggende relaties tussen de oorspronkelijke geparameteriseerde query's (ook wel bovenliggende query's genoemd), dispatcherplannen en de onderliggende queryvarianten. Deze catalogusweergave biedt de mogelijkheid om alle queryvarianten weer te geven die zijn gekoppeld aan een dispatcher, evenals de oorspronkelijke geparameteriseerde query's. Queryvarianten hebben dezelfde query_hash waarde als die wordt weergegeven vanuit de sys.query_store_query catalogusweergave, die wanneer ze zijn gekoppeld aan de sys.query_store_query_variant- en sys.query_store_runtime_stats catalogusweergaven, statistische statistieken over resourcegebruik kunnen worden verkregen voor query's die alleen verschillen met hun invoerwaarden.
Kolomnaam | Gegevenstype | Beschrijving |
---|---|---|
query_variant_query_id | grote | Primaire sleutel. Id van de geparameteriseerde gevoelige queryvariant. |
parent_query_id | grote | Id van de oorspronkelijke geparameteriseerde query. |
dispatcher_plan_id | grote | Id van het parametergevoelige planoptimalisatie-dispatcherplan. |
Opmerkingen
Omdat er meer dan één queryvariant kan worden gekoppeld aan één dispatcher-plan, zijn er meerdere abonnementen die deel uitmaken van queryvarianten die uiteindelijk worden toegevoegd aan de algemene resourcegebruiksstatistieken van de bovenliggende query. Het dispatcherplan voor queryvarianten produceert geen runtimestatistieken in de Query Store, waardoor bestaande Query Store-query's niet langer voldoende zijn bij het verzamelen van algemene statistieken, tenzij er een extra join aan de query_store_query_variant weergave is opgenomen.
Machtigingen
Hiervoor is de machtiging VIEW DATABASE STATE vereist.
Voorbeelden
Query Store-variantinformatie weergeven
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
Query Store-dispatcher- en variantinformatie weergeven
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
Zie ook
- sys.query_store_plan (Transact-SQL)
- sys.query_store_query (Transact-SQL)
- sys.query_store_runtime_stats (Transact-SQL)
- sys.query_store_wait_stats (Transact-SQL)
- sys.query_store_runtime_stats_interval (Transact-SQL)
- prestaties bewaken met behulp van de Query Store-
- catalogusweergaven (Transact-SQL)
- opgeslagen procedures voor Query Store (Transact-SQL)