Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
databáze SQL v Microsoft Fabric
Vrací řádek pro každý plán dotazů, který je uložen v SQL Serveru pro rychlejší provádění dotazů. Tento dynamický pohled správy můžete použít k nalezení cacheovaných plánů dotazů, cacheovaných textů dotazů, množství paměti zabírané cacheovanými plány a počtu opakovaných použití cacheovaných plánů.
V Azure SQL Database nemůžou zobrazení dynamické správy zveřejnit informace, které by ovlivnily zahrnutí databáze nebo zpřístupnily informace o jiných databázích, ke kterým má uživatel přístup. Aby se zabránilo zveřejnění těchto informací, vyfiltruje se každý řádek obsahující data, která nepatří do připojeného tenanta. Kromě toho jsou hodnoty ve sloupcích memory_object_address a pool_id filtrovány; hodnota sloupce je nastavena na NULLhodnotu .
Poznámka:
Pokud to chcete volat ze služby Azure Synapse Analytics nebo systému PDW (Analytics Platform System), použijte název sys.dm_pdw_nodes_exec_cached_plans. Tato syntaxe není podporována bezserverovým fondem SQL ve službě Azure Synapse Analytics.
| Název sloupce | Datový typ | Description |
|---|---|---|
bucketid |
int | ID hashovacího kbelíku, ve kterém je záznam uložen. Hodnota označuje rozsah od 0 až po velikost hashovací tabulky pro typ cache. V případě mezipaměti plánů SQL a plánů objektů může být velikost tabulky hash až 10 007 v 32bitových systémech a až 40 009 v 64bitových systémech. V mezipaměti Bound Trees může být velikost tabulky hash až 1 009 v 32bitových systémech a až 4 001 v 64bitových systémech. Pro cache Extended Stored Procedures může velikost hashovací tabulky být až 127 na 32bitových a 64bitových systémech. |
refcounts |
int | Počet cache objektů, které odkazují na tento cache objekt.
refcounts musí být alespoň 1, aby položka byla v mezipaměti. |
usecounts |
int | Počet vyhledávání objektu cache. Nezvyšuje to, když parametrizované dotazy najdou plán v cache. Při použití showplanu lze to několikrát zvýšit. |
size_in_bytes |
int | Počet bajtů spotřebovaných objektem cache. |
memory_object_address |
varbinary(8) | Paměťová adresa uloženého záznamu. Tuto hodnotu lze použít s sys.dm_os_memory_objects k získání rozdělení paměti cacheovaného plánu a s sys.dm_os_memory_cache_entries_entries pro získání nákladů na cachování záznamu. |
cacheobjtype |
nvarchar(34) | Typ objektu v cache. Hodnota může být jedna z těchto hodnot: Zkompilovaný plán Zkompilovaný plánový stub Strom parse Rozšířený proces CLR Kompilovaný Func CLR Compiled Proc |
objtype |
nvarchar(16) | Typ objektu. Níže jsou uvedeny možné hodnoty a jejich odpovídající popisy. Proc: Uložená procedura Připraveno: Připravené prohlášení Ad hoc: Ad hoc dotaz. Označuje Transact-SQL zasílané jako jazykové události pomocí oSQL nebo sqlcmd místo vzdálených volání procedur. ReplProc: Replikace-filtr-procedura Spouštěč: Spouštěč Zobrazit: Zobrazit Výchozí: Výchozí UsrTab: Uživatelská tabulka SysTab: Systémová tabulka Check: CHECK omezení Pravidlo: Pravidlo |
plan_handle |
varbinary(64) | Identifikátor plánu v paměti. Tento identifikátor je přechodný a zůstává konstantní pouze v době, kdy plán zůstává v mezipaměti. Tuto hodnotu můžete použít s následujícími funkcemi dynamické správy: sys.dm_exec_sql_text sys.dm_exec_query_plan sys.dm_exec_plan_attributes |
pool_id |
int | ID zdrojového fondu, proti kterému je tato paměťová spotřeba plánu zohledněna. |
pdw_node_id |
int | Identifikátor uzlu, na který je tato distribuce zapnutá. Platí na: Azure Synapse Analytics, Analytics Platform System (PDW) |
Povolení
SQL Server 2019 (15.x) a starší verze vyžadují VIEW SERVER STATE oprávnění.
SQL Server 2022 (16.x) a novější verze a Azure SQL Managed Instance vyžadují VIEW SERVER PERFORMANCE STATE oprávnění.
U cílů služby Azure SQL Database Basic, S0 a S1 a pro databáze v elastických fondech se vyžaduje účet správce serveru , účet správce Microsoft Entra nebo členství v ##MS_ServerStateReader##roli serveru . U všech ostatních cílů VIEW DATABASE STATE služby SQL Database se vyžaduje buď oprávnění k databázi, nebo členství v ##MS_ServerStateReader## roli serveru.
Examples
A. Vrácení dávkového textu položek uložených v mezipaměti, které se znovu používají.
Následující příklad vrací SQL text všech uložených záznamů, které byly použity vícekrát.
SELECT usecounts,
cacheobjtype,
objtype,
text
FROM sys.dm_exec_cached_plans
CROSS APPLY sys.dm_exec_sql_text(plan_handle)
WHERE usecounts > 1
ORDER BY usecounts DESC;
B. Návratové plány dotazů pro všechny triggery uložené v mezipaměti
Následující příklad vrací plány dotazů všech cacheovaných spouštěčů.
SELECT plan_handle,
query_plan,
objtype
FROM sys.dm_exec_cached_plans
CROSS APPLY sys.dm_exec_query_plan(plan_handle)
WHERE objtype = 'Trigger';
C. Vrátí možnosti SET, se kterými byl plán zkompilován.
Následující příklad vrátí SET možnosti, se kterými byl plán zkompilován. Plán sql_handle je také vrácen. Operátor PIVOT slouží k výstupu set_options sloupců a sql_handle atributů jako sloupců, nikoli jako řádků. Další informace o hodnotě vrácené v set_optionsčásti sys.dm_exec_plan_attributes.
SELECT plan_handle,
pvt.set_options,
pvt.sql_handle
FROM (
SELECT plan_handle,
epa.attribute,
epa.value
FROM sys.dm_exec_cached_plans
OUTER APPLY sys.dm_exec_plan_attributes(plan_handle) AS epa
WHERE cacheobjtype = 'Compiled Plan'
) AS ecpa
PIVOT (MAX (ecpa.value) FOR ecpa.attribute IN ("set_options", "sql_handle")) AS pvt;
D. Vrácení rozpisu paměti všech kompilovaných plánů uložených v mezipaměti
Následující příklad vrací rozpis paměti používané všemi zkompilovanými plány v cache.
SELECT plan_handle,
ecp.memory_object_address AS CompiledPlan_MemoryObject,
omo.memory_object_address,
type,
page_size_in_bytes
FROM sys.dm_exec_cached_plans AS ecp
INNER JOIN sys.dm_os_memory_objects AS omo
ON ecp.memory_object_address = omo.memory_object_address
OR ecp.memory_object_address = omo.parent_address
WHERE cacheobjtype = 'Compiled Plan';
Související obsah
- zobrazení dynamické správy systému
- zobrazení a funkce související se spouštěním dynamické správy (Transact-SQL)
-
sys.dm_exec_query_plan (Transact-SQL) - sys.dm_exec_plan_attributes (Transact-SQL)
-
sys.dm_exec_sql_text (Transact-SQL) - sys.dm_os_memory_objects (Transact-SQL)
- sys.dm_os_memory_cache_entries (Transact-SQL)
- Klauzule FROM plus JOIN, APPLY, PIVOT (Transact-SQL)