Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op: SQL Server 2016 (13.x) en latere versies
van Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Bevat informatie over elk uitvoeringsplan dat is gekoppeld aan een query.
| Kolomnaam | Gegevenstype | Description |
|---|---|---|
plan_id |
bigint | Primaire sleutel. |
query_id |
bigint | Refererende sleutel. Wordt samengevoegd met sys.query_store_query (Transact-SQL). |
plan_group_id |
bigint | Id van de plangroep. Cursorquery's vereisen doorgaans meerdere plannen (vullen en ophalen). Plannen vullen en ophalen die samen zijn gecompileerd, bevinden zich in dezelfde groep.0 betekent dat het plan zich niet in een groep bevindt. |
engine_version |
nvarchar(32) | De versie van de engine die wordt gebruikt voor het compileren van het plan in <major>.<minor>.<build>.<revision> indeling. |
compatibility_level |
smallint | Databasecompatibiliteitsniveau van de database waarnaar wordt verwezen in de query. |
query_plan_hash |
binary(8) | MD5-hash van het afzonderlijke abonnement. |
query_plan |
nvarchar(max) | Showplan XML voor het queryplan. |
is_online_index_plan |
bit | Het plan is gebruikt tijdens een online indexbuild. Notitie: Azure Synapse Analytics retourneert 0altijd. |
is_trivial_plan |
bit | Plan is een triviaal plan (uitvoer in fase 0 van queryoptimalisatie). Notitie: Azure Synapse Analytics retourneert 0altijd. |
is_parallel_plan |
bit | Het plan is parallel. Notitie: Azure Synapse Analytics retourneert 1altijd. |
is_forced_plan |
bit | Het plan wordt gemarkeerd als geforceerd wanneer de gebruiker een opgeslagen procedure sys.sp_query_store_force_planuitvoert. Het afdwingingsmechanisme garandeert niet dat dit exacte plan wordt gebruikt voor de query waarnaar query_idwordt verwezen. Plan afdwingen zorgt ervoor dat de query opnieuw wordt gecompileerd en produceert doorgaans precies hetzelfde of een vergelijkbaar plan als het plan waarnaar wordt verwezen.plan_id Als het afdwingen van plannen niet slaagt, force_failure_count wordt dit verhoogd en last_force_failure_reason wordt deze gevuld met de reden van de fout.Notitie: Azure Synapse Analytics retourneert 0altijd. |
is_natively_compiled |
bit | Het plan bevat systeemeigen gecompileerde procedures die zijn geoptimaliseerd voor geheugen. (0 = FALSE, 1 = TRUE).Notitie: Azure Synapse Analytics retourneert 0altijd. |
force_failure_count |
bigint | Aantal keren dat het afdwingen van dit plan is mislukt. Deze kan alleen worden verhoogd wanneer de query opnieuw wordt gecompileerd (niet bij elke uitvoering). Wordt opnieuw ingesteld op 0 elke keer is_forced_plan dat wordt gewijzigd van FALSE in TRUE.Notitie: Azure Synapse Analytics retourneert 0altijd. |
last_force_failure_reason |
int | Reden waarom plan afdwingen is mislukt. 0: geen fout, anders foutnummer van de fout waardoor het afdwingen mislukt 3617: COMPILATION_ABORTED_BY_CLIENT8637: ONLINE_INDEX_BUILD8675: OPTIMIZATION_REPLAY_FAILED8683: INVALID_STARJOIN8684: TIME_OUT8689: NO_DB8690: HINT_CONFLICT8691: SETOPT_CONFLICT8694: DQ_NO_FORCING_SUPPORTED8698: NO_PLAN8712: NO_INDEX8713: VIEW_COMPILE_FAILED<andere waarde>: GENERAL_FAILURENotitie: Azure Synapse Analytics retourneert 0altijd. |
last_force_failure_reason_desc |
nvarchar(128) | Tekstuele beschrijving van last_force_failure_reason.COMPILATION_ABORTED_BY_CLIENT: compilatie van afgebroken query's voordat deze is voltooidONLINE_INDEX_BUILD: query probeert gegevens te wijzigen terwijl de doeltabel een index heeft die online wordt gebouwdOPTIMIZATION_REPLAY_FAILED: het script voor het opnieuw afspelen van optimalisatie kan niet worden uitgevoerd.INVALID_STARJOIN: plan bevat ongeldige StarJoin-specificatieTIME_OUT: Optimizer heeft het aantal toegestane bewerkingen overschreden tijdens het zoeken naar een plan dat is opgegeven door een geforceerd planNO_DB: Er bestaat geen database die is opgegeven in het planHINT_CONFLICT: De query kan niet worden gecompileerd omdat het plan conflicteert met een queryhintDQ_NO_FORCING_SUPPORTED: Kan geen query uitvoeren omdat het plan conflicteert met het gebruik van gedistribueerde querybewerkingen of bewerkingen in volledige tekst.NO_PLAN: Queryprocessor kan geen queryplan produceren, omdat geforceerd plan niet kan worden geverifieerd als geldig voor de queryNO_INDEX: Index opgegeven in plan bestaat niet meerVIEW_COMPILE_FAILED: Kan het queryplan niet forceren vanwege een probleem in een geïndexeerde weergave waarnaar wordt verwezen in het planGENERAL_FAILURE: algemene forceringsfout (niet behandeld met andere redenen)Notitie: Azure Synapse Analytics retourneert NONEaltijd. |
count_compiles |
bigint | Compilatiestatistieken plannen. |
initial_compile_start_time |
datetimeoffset | Compilatiestatistieken plannen. |
last_compile_start_time |
datetimeoffset | Compilatiestatistieken plannen. |
last_execution_time |
datetimeoffset | De laatste uitvoeringstijd verwijst naar de laatste eindtijd van de query/het plan. |
avg_compile_duration |
float | Compilatiestatistieken plannen, in microseconden. Deel door 1.000.000 om seconden te krijgen. |
last_compile_duration |
bigint | Compilatiestatistieken plannen, in microseconden. Deel door 1.000.000 om seconden te krijgen. |
plan_forcing_type |
int |
Van toepassing op: SQL Server 2017 (14.x) en latere versies Plan het afdwingen van type. 0: NONE1: MANUAL2: AUTO |
plan_forcing_type_desc |
nvarchar(60) |
Van toepassing op: SQL Server 2017 (14.x) en latere versies Tekstbeschrijving van plan_forcing_type.NONE: Geen plan afdwingenMANUAL: Plan geforceerd door gebruikerAUTO: Plan geforceerd door automatisch afstemmen. |
has_compile_replay_script |
bit |
Van toepassing op: SQL Server 2022 (16.x) en latere versies Hiermee wordt aangegeven of aan het plan een optimalisatiescript voor opnieuw afspelen is gekoppeld: 0 = Geen optimalisatieherplayscript (geen of zelfs ongeldig). 1 = optimalisatiescript voor opnieuw afspelen vastgelegd. Niet van toepassing op Azure Synapse Analytics. |
is_optimized_plan_forcing_disabled |
bit |
Van toepassing op: SQL Server 2022 (16.x) en latere versies Hiermee wordt aangegeven of het afdwingen van geoptimaliseerde plannen is uitgeschakeld voor het plan: 0 = uitgeschakeld. 1 = niet uitgeschakeld. Niet van toepassing op Azure Synapse Analytics. |
plan_type |
int |
Van toepassing op: SQL Server 2022 (16.x) en latere versies Type plan. 0: Gecompileerd plan 1: Dispatcher-abonnement 2: Queryvariant-abonnement Niet van toepassing op Azure Synapse Analytics. |
plan_type_desc |
nvarchar(120) |
Van toepassing op: SQL Server 2022 (16.x) en latere versies Tekstbeschrijving van het type plan. Gecompileerd plan: geeft aan dat het plan een niet-parametergevoelig plan is dat is geoptimaliseerd Dispatcher-plan: geeft aan dat het plan een parametergevoelig plan is dat is geoptimaliseerd voor dispatcher Queryvariantplan: geeft aan dat het plan een parametergevoelig plan is dat is geoptimaliseerd voor queryvariant Niet van toepassing op Azure Synapse Analytics. |
Opmerkingen
Er kan meer dan één plan worden afgedwongen wanneer Query Store voor secundaire replica's is ingeschakeld.
In Azure Synapse Analytics, met behulp van kolommenhas_compile_replay_script, is_optimized_plan_forcing_disabledplan_typeplan_type_descresulteert dit in een Invalid Column Name fout omdat ze niet worden ondersteund. Zie voorbeeld B voor een voorbeeld van het gebruik sys.query_store_plan in Azure Synapse Analytics.
Beperkingen plannen
Query Store heeft een mechanisme om Query Optimizer af te dwingen voor het gebruik van een bepaald uitvoeringsplan. Er zijn echter enkele beperkingen die kunnen voorkomen dat een plan wordt afgedwongen.
Als het plan eerst de volgende constructies bevat:
- Bulkinstructie invoegen
- Verwijzing naar een externe tabel
- Gedistribueerde query of bewerkingen in volledige tekst
- Gebruik van elastische query's
- Dynamische cursors of toetssetcursors
- Ongeldige sterdeelnamespecificatie
Opmerking
Ondersteuningsplan voor azure SQL Database en SQL Server 2019 en latere buildversies voor statische en snelle cursors.
Ten tweede, wanneer objecten waarop het plan is gebaseerd, niet meer beschikbaar zijn:
- Database (als database, waar het plan vandaan komt, niet meer bestaat)
- Index (niet meer aanwezig of uitgeschakeld)
Ten slotte zijn er problemen met het plan zelf:
- Niet legaal voor query
- Query Optimizer heeft het aantal toegestane bewerkingen overschreden
- Onjuist gevormde plan-XML
Permissions
Hiervoor is de VIEW DATABASE STATE machtiging vereist.
Voorbeelden
Eén. De reden vinden dat SQL Server geen plan kan afdwingen via QDS
Let op de last_force_failure_reason_desc en force_failure_count kolommen:
SELECT TOP 1000
p.query_id,
p.plan_id,
p.last_force_failure_reason_desc,
p.force_failure_count,
p.last_compile_start_time,
p.last_execution_time,
q.last_bind_duration,
q.query_parameterization_type_desc,
q.context_settings_id,
c.set_options,
c.STATUS
FROM sys.query_store_plan p
INNER JOIN sys.query_store_query q
ON p.query_id = q.query_id
INNER JOIN sys.query_context_settings c
ON c.context_settings_id = q.context_settings_id
LEFT JOIN sys.query_store_query_text t
ON q.query_text_id = t.query_text_id
WHERE p.is_forced_plan = 1
AND p.last_force_failure_reason != 0;
B. Query om resultaten van queryplannen weer te geven in Azure Synapse Analytics
Gebruik de volgende voorbeeldquery om de 100 meest recente uitvoeringsplannen te vinden in de Query Store in Azure Synapse Analytics.
SELECT TOP 100
plan_id,
query_id,
plan_group_id,
engine_version,
compatibility_level,
query_plan_hash,
query_plan,
is_online_index_plan,
is_trivial_plan,
is_parallel_plan,
is_forced_plan,
is_natively_compiled,
force_failure_count,
last_force_failure_reason,
last_force_failure_reason_desc,
count_compiles,
initial_compile_start_time,
last_compile_start_time,
last_execution_time,
avg_compile_duration,
last_compile_duration,
plan_forcing_type,
plan_forcing_type_desc
FROM sys.query_store_plan
ORDER BY last_execution_time DESC;
Verwante inhoud
- Prestaties controleren via de Query Store
- sys.database_query_store_options (Transact-SQL)
- sys.query_context_settings (Transact-SQL)
- sys.query_store_query (Transact-SQL)
- sys.query_store_query_text (Transact-SQL)
- sys.query_store_runtime_stats (Transact-SQL)
- sys.query_store_wait_stats (Transact-SQL)
- sys.query_store_runtime_stats_interval (Transact-SQL)
- Systeemcatalogusweergaven (Transact-SQL)
- opgeslagen procedures van Query Store (Transact-SQL)