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 denna information filtreras varje rad som innehåller data som inte tillhör den anslutna tenanten bort. Dessutom filtreras värdena i kolumnerna memory_object_address och pool_id ; kolumnvärdet sätts till 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 SQL Plans- och Object Plans-cacher kan hashtabellstorleken vara upp till 10007 på 32-bitars system och upp till 40009 på 64-bitarssystem. För Bound Trees-cachen kan hashtabellstorleken vara upp till 1009 på 32-bitarssystem och upp till 4001 på 64-bitarssystem. För cachen Extended Stored Procedures kan hashtabellstorleken vara upp till 127 på 32- och 64-bitars system. |
| Omräkningar | int | Antal cacheobjekt som refererar till detta cacheobjekt. Refcounts måste vara minst 1 för att en post ska finnas i cachen. |
| Användningsräkningar | 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 följande: 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 Adhoc: 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 Trigger: Trigger 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. Detta värde 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 |
gäller för: Azure Synapse Analytics, Analytics Platform System (PDW) Identifieraren för noden som den här fördelningen är på. |
1
Permissions
På SQL Server och SQL Managed Instance kräver VIEW SERVER STATE behörighet.
I SQL Database Grundläggande, S0och S1 tjänstmål och för databaser i elastiska pooler, serveradministratör konto, Microsoft Entra-administratör konto eller medlemskap i ##MS_ServerStateReader##serverrollen krävs. 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.
Behörigheter för SQL Server 2022 och senare
Kräver BEHÖRIGHET FÖR VISNINGSSERVERNS PRESTANDATILLSTÅND på servern.
Examples
A. Returnera batchtexten för cachade 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;
GO
B. Returnerar frågeplaner för alla cachade triggers
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';
GO
C. Att återlämna SET-alternativen som planen var sammanställd med
Följande exempel visar de SET-alternativ som planen sammanställdes med. Planen sql_handle återlämnas också. PIVOT-operatorn används för att mata set_options ut och sql_handle attributen som kolumner istället för som rader. För mer information om värdet som returneras i set_options, se sys.dm_exec_plan_attributes (Transact-SQL).
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;
GO
D. Återlämnar minnesuppdelningen av alla cachade 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
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';
GO
Se även
Vyer och funktioner för dynamisk hantering (Transact-SQL)
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)
FRÅN (Transact-SQL)