Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analysplattformssystem (PDW)
SQL-databas i Microsoft Fabric
Returnerar en rad för varje frågeplan som cachelagras av SQL Server för snabbare frågeexekvering. Du kan använda denna dynamiska hanteringsvy för att hitta cachade frågeplaner, cachade frågetexter, mängden minne som cachade planer använder och återanvändningsräkningen av de cachade planerna.
I Azure SQL Database kan dynamiska hanteringsvyer inte exponera information som skulle påverka databasens inneslutning eller exponera information om andra databaser som användaren har åtkomst till. För att undvika att exponera den här informationen filtreras varje rad som innehåller data som inte tillhör den anslutna klientorganisationen bort. Dessutom filtreras värdena i kolumnerna memory_object_address och pool_id . kolumnvärdet är inställt på NULL.
Anmärkning
Om du vill anropa detta från Azure Synapse Analytics eller Analytics Platform System (PDW) använder du namnet sys.dm_pdw_nodes_exec_cached_plans. Den här syntaxen stöds inte av en serverlös SQL-pool i Azure Synapse Analytics.
| Kolumnnamn | Datatyp | Description |
|---|---|---|
bucketid |
int | ID för hashhinken där posten är cachad. Värdet anger ett intervall från 0 till hashtabellens storlek för cachetypen. För CACHEminnen för SQL-planer och objektplaner kan hashtabellstorleken vara upp till 10 007 på 32-bitarssystem och upp till 40 009 på 64-bitarssystem. För cacheminnet För bundna träd kan hashtabellens storlek vara upp till 1 009 på 32-bitarssystem och upp till 4 001 på 64-bitarssystem. För cachen Extended Stored Procedures kan hashtabellstorleken vara upp till 127 på 32- och 64-bitars system. |
refcounts |
int | Antal cacheobjekt som refererar till detta cacheobjekt.
refcounts måste vara minst 1 för att en post ska finnas i cacheminnet. |
usecounts |
int | Antal gånger cacheobjektet har slagits upp. Inte ökade när parameteriserade frågor hittar en plan i cachen. Kan öka flera gånger när man använder Showplan. |
size_in_bytes |
int | Antal byte som förbrukas av cacheobjektet. |
memory_object_address |
varbinary(8) | Minnesadressen för den cachade posten. Detta värde kan användas med sys.dm_os_memory_objects för att få minnesuppdelningen för den cachade planen och med sys.dm_os_memory_cache_entries_entries för att få kostnaden för att cachelagra posten. |
cacheobjtype |
Nvarchar(34) | Typ av objekt i cachen. Värdet kan vara något av: Sammanställd plan Sammanställd planstub Parseträd Utökad proc CLR kompilerad funk CLR kompilerad proc |
objtype |
nvarchar(16) | Typ av objekt. Nedan följer de möjliga värdena och deras motsvarande beskrivningar. Proc: Lagrad procedur Förberedd: Förberedd uppgift Ad hoc: Ad hoc-fråga. Avser Transact-SQL skickas in som språkhändelser genom att använda osql eller sqlcmd istället för som fjärrproceduranrop. ReplProc: Replikationsfilter-procedur Utlösare: Utlösare Vy: Vy Standard: Standard UsrTab: Användartabell SysTab: Systemtabell Kontrollera: KONTROLLERA begränsningen Regel: Regel |
plan_handle |
varbinary(64) | Identifierare för den minnesinterna planen. Den här identifieraren är tillfälligt och förblir endast konstant när planen finns kvar i cacheminnet. Det här värdet kan användas med följande dynamiska hanteringsfunktioner: sys.dm_exec_sql_text sys.dm_exec_query_plan sys.dm_exec_plan_attributes |
pool_id |
int | ID:t för resurspoolen som denna planminnesanvändning räknas mot. |
pdw_node_id |
int | Identifieraren för noden som den här fördelningen är på. gäller för: Azure Synapse Analytics, Analytics Platform System (PDW) |
Permissions
SQL Server 2019 (15.x) och tidigare versioner kräver VIEW SERVER STATE behörighet.
SQL Server 2022 (16.x) och senare versioner och Azure SQL Managed Instance kräver VIEW SERVER PERFORMANCE STATE behörighet.
I tjänstmålen för Azure SQL Database Basic, S0 och S1 och för databaser i elastiska pooler krävs serveradministratörskontot, Microsoft Entra-administratörskontot eller medlemskap i ##MS_ServerStateReader##. För alla andra SQL Database-tjänstmål krävs antingen VIEW DATABASE STATE behörighet för databasen eller medlemskap i ##MS_ServerStateReader## serverrollen.
Examples
A. Returnera batchtexten för cachelagrade poster som återanvänds
Följande exempel returnerar SQL-texten för alla cachade poster som har använts mer än en gång.
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. Returnera frågeplaner för alla cachelagrade utlösare
Följande exempel returnerar frågeplanerna för alla cachade triggers.
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. Returnera de SET-alternativ som planen kompilerades med
I följande exempel returneras de SET alternativ som planen kompilerades med. Planen sql_handle återlämnas också. Operatorn PIVOT används för att mata ut attributen set_options och sql_handle som kolumner i stället för som rader. Mer information om värdet som returneras i finns i set_optionssys.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. Returnera minnesuppdelningen för alla cachelagrade kompilerade planer
Följande exempel ger en uppdelning av minnet som används av alla kompilerade planer i cachen.
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';
Relaterat innehåll
- Vyer för dynamisk hantering av system
- Körningsrelaterade vyer och funktioner för dynamisk hantering (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)
- FROM-klausul plus JOIN, APPLY, PIVOT (Transact-SQL)