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. Az információk felfedésének elkerülése érdekében a rendszer kiszűr minden olyan sort, amely nem a csatlakoztatott bérlőhöz tartozó adatokat tartalmaz. Emellett a memory_object_address és a pool_id oszlop értékei is szűrve lesznek; az oszlop értéke a következőre NULLvan á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 Plans és az Object Plans gyorsítótárak esetében a kivonattábla mérete 32 bites rendszereken akár 10 007, 64 bites rendszereken pedig akár 40 009 is lehet. A Kötött fák gyorsítótár esetében a kivonattábla mérete 32 bites rendszereken akár 1009, 64 bites rendszereken akár 4001 is lehet. A Extended Stored Procedures gyorsítótárban a hash tábla mérete akár 127 lehet 32 és 64 bites rendszereken. |
refcounts |
int | Azoknak a cache objektumoknak a száma, amelyek erre a cache objektumra hivatkoznak.
refcounts Legalább 1-nek kell lennie ahhoz, hogy egy bejegyzés bekerüljön a gyorsítótárba. |
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ő 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 Alkalmi: Alkalmi lekérdezé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 Eseményindító: 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 felügyeleti függvényekkel 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 | Annak a csomópontnak az azonosítója, amelyen ez a disztribúció található. A következővonatkozik: Azure Synapse Analytics, Analytics Platform System (PDW) |
Permissions
Az SQL Server 2019 (15.x) és a korábbi verziók engedélyhez szükségesek VIEW SERVER STATE .
Az SQL Server 2022 (16.x) és újabb verziói, valamint a felügyelt Azure SQL-példány engedélyt igényelnek VIEW SERVER PERFORMANCE STATE .
Az Azure SQL Database Alapszintű, S0 és S1 szolgáltatási célkitűzésein, valamint rugalmas készletekben lé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.
Példák
A. Az újrafelhasznált gyorsítótárazott bejegyzések kötegszövegének visszaadása
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;
B. Lekérdezési tervek visszaadása az összes gyorsítótárazott eseményindítóhoz
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';
C. Adja vissza azokat a SET-beállításokat, amelyekkel a tervet lefordították
Az alábbi példa azokat a SET beállításokat adja vissza, amelyekkel a tervet lefordították. A sql_handle terv is visszakerül. Az PIVOT operátor a sorok helyett oszlopokként adja ki az set_options és sql_handle az attribútumokat. A visszaadott set_optionsértékkel kapcsolatos további információkért lásd a 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. Az összes gyorsítótárazott lefordított csomag memórialebontásának visszaadá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
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';
Kapcsolódó tartalom
- rendszer dinamikus felügyeleti nézetei
- 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 klauszula és JOIN, APPLY, PIVOT (Transact-SQL)