Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Vonatkozik a következőkre:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analitikai Platform System (PDW)
SQL adatbázis a Microsoft Fabric-ben
Minden lekérdezési tervhez egy sort ad vissza, amelyet az SQL Server gyorsabb lekérdezés végrehajtása érdekében gyorsít. Ezt a dinamikus menedzsment nézetet használhatod arra, hogy megtaláld a gyorsatározott lekérdezési terveket, a gyorsatározott lekérdezési szöveget, a gyorsítótározott tervek által használt memóriát és a gyorsatározott tervek újrahasznosítási számát.
Az Azure SQL Database-ben a dinamikus felügyeleti nézetek nem tehetnek közzé olyan információkat, amelyek hatással lennének az adatbázis-elszigetelésre, vagy nem tehetnek közzé információkat más olyan adatbázisokról, amelyekhez a felhasználó hozzáfér. Ennek az információnak a feltárása érdekében minden olyan sor, amely nem a kapcsolódó bérlőhöz tartozó adatokat tartalmaz, kiszűrik. Ezen felül a memory_object_address és pool_id oszlopok értékeit szűrik; az oszlop értéke NULL-ra van állítva.
Megjegyzés:
Ha ezt az Azure Synapse Analytics vagy az Analytics Platform System (PDW) szolgáltatásból szeretné meghívni, használja a nevet sys.dm_pdw_nodes_exec_cached_plans. Ezt a szintaxist az Azure Synapse Analytics kiszolgáló nélküli SQL-készlete nem támogatja.
| Oszlop név | Adattípus | Description |
|---|---|---|
| Bucketid | int | Annak a hash bucketnek az azonosítója, amelyben a bejegyzés gyorsatárban van. Az érték 0 és a gyorsítótár típusának hash tábla méretéig terjedő tartományt jelöl. Az SQL Tervek és Objektumtervek gyorsítótárainál a hash tábla mérete akár 10007 lehet 32 bites rendszereken, míg akár 40009 64 bites rendszereken. A Bound Trees gyorsítótár esetén a hash tábla mérete akár 1009 lehet 32 bites rendszereken, és akár 4001 64 bites rendszereken. A Extended Stored Procedures gyorsítótárban a hash tábla mérete akár 127 lehet 32 és 64 bites rendszereken. |
| Visszaszámlálások | int | Azoknak a cache objektumoknak a száma, amelyek erre a cache objektumra hivatkoznak. A visszaszámlálásnak legalább 1-nek kell lennie, hogy egy bejegyzés a cache-ben legyen. |
| Usecounts | int | Hányszor keresték meg a cache objektumot. Nem növelik, ha paraméterezett lekérdezések találnak tervet a cache-ben. Többször is növelhető showplan használatával. |
| size_in_bytes | int | A gyorsítótár objektum által elhasznált bájtok száma. |
| memory_object_address | varbinary(8) | A gyorsítótározott bejegyzés memóriacíme. Ez az érték sys.dm_os_memory_objects-vel használható a gyorsítótározott terv memóriabontásának megszerzésére, sys.dm_os_memory_cache_entries-vel _entries pedig a bejegyzés gyorsítótárázásának költségének meghatározására. |
| cacheobjtype | nvarchar(34) | A gyorsítótárban lévő objektum típusa. Az érték a következők egyike lehet: Összeállított terv Összeállított tervcsík Parse fa Kiterjesztett proc CLR Fordított Func CLR fordított proc |
| objtype | nvarchar(16) | Objektum típusa. Az alábbiakban a lehetséges értékek és azok megfelelő leírásai találhatók. Proc: Tárolt eljárás Előkészítve: Előkészített nyilatkozat Adhoc: Ad hoc kérdés. Azt jelenti, hogy Transact-SQL nyelvi eseményként küldtek be osql vagy sqlcmd használatával távoli eljáráshívások helyett. ReplProc: Replikáció-szűrő-eljárás Trigger: Trigger Nézet: Kilátás Alapértelmezett: Alapértelmezett UsrTab: Felhasználói tábla SysTab: Rendszertábla Megnézés: ELLENŐRZÉS korlátozás Szabály: Szabály |
| plan_handle | varbinary(64) | A memóriabeli terv azonosítója. Ez az azonosító átmeneti, és csak addig marad állandó, amíg a terv a gyorsítótárban marad. Ez az érték a következő dinamikus menedzsment funkciókkal használható: sys.dm_exec_sql_text sys.dm_exec_query_plan sys.dm_exec_plan_attributes |
| pool_id | int | Az erőforrás-pool azonosítója, amelyhez ez a terv memóriahasználata számít. |
| pdw_node_id | int |
A következővonatkozik: Azure Synapse Analytics, Analytics Platform System (PDW) Annak a csomópontnak az azonosítója, amelyen ez a disztribúció található. |
1
Permissions
Az SQL Serveren és a felügyelt SQL-példányon VIEW SERVER STATE engedély szükséges.
Az SQL Database Alapszintű, S0és S1 szolgáltatás célkitűzésein, valamint rugalmas készletekbenlévő adatbázisok esetében a kiszolgálói rendszergazdai fiókra, a Microsoft Entra rendszergazdai fiókra vagy a ##MS_ServerStateReader##kiszolgálói szerepkör tagságára van szükség. Az SQL Database szolgáltatás minden más célkitűzéséhez vagy az adatbázis VIEW DATABASE STATE engedélyére, vagy a ##MS_ServerStateReader## kiszolgálói szerepkör tagságára van szükség.
Engedélyek az SQL Server 2022-hez és újabb verziókhoz
A KISZOLGÁLÓ TELJESÍTMÉNYÁLLAPOTÁNAK MEGTEKINTÉSE engedélyre van szükség a kiszolgálón.
Példák
A. A gyorsítótárban tárolt bejegyzések csomagszövegének visszaküldése, amelyeket újrahasznosítottak
A következő példa az összes gyorsítótározott bejegyzés SQL szövegét adja vissza, amelyeket többször is használtak.
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. Lekérdezési tervek visszaküldése minden gyorsítótározott triggerre
A következő példa visszaadja az összes gyorsítótározott trigger lekérdezési terveit.
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. A terv összeállítására szolgáló SET opciók visszaküldése
A következő példa adja vissza azokat a SET opciókat, amelyekkel a tervet fordították. A sql_handle terv is visszakerül. A PIVOT operátort arra használják, hogy a set_options és sql_handle attribútumokat oszlopként adja ki, nem sorként. További információért a visszaadott értékről set_optionslásd 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. Minden gyorsatározott lefordított terv memóriabontásának visszaállítása
A következő példa a gyorsítótárban az összes lefordított terve által használt memóriát tartalmazza.
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
Lásd még:
Dinamikus felügyeleti nézetek és függvények (Transact-SQL)
végrehajtással kapcsolatos dinamikus felügyeleti nézetek és függvények (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 (Transact-SQL)