Udostępnij za pośrednictwem


sys.dm_exec_cached_plans (języka Transact-SQL)

Zwraca wiersz dla każdego planu kwerend, który jest buforowany przez SQL Server na szybsze wykonywanie kwerendy.To dynamiczny widok zarządzania służy do znajdowania planów kwerend buforowane, tekst kwerendy buforowana ilość pamięci przez buforowane planów i liczba ponownego użycia planów buforowane.

Ostrzeżenie

Dla planów kwerend sys.dm_exec_cached_plans dynamiczny widok zarządzania mapy do syscacheobjects tabela systemowa w SQL Server 2000.

Nazwa kolumny

Typ danych

Opis

bucketid

int

Identyfikator kolorem mieszania, w buforze zapisu.Wartość wskazuje zakres od 0 do rozmiar tabela mieszania dla typu pamięci podręcznej.

W pamięci podręcznej SQL planów i plany obiektu rozmiar tabela mieszania może być do 10007 w systemach 32-bitowych i 40009 w systemach 64-bitowych.W pamięci podręcznej powiązane drzew rozmiar tabela mieszania może być do 1009 w systemach 32-bitowych i 4001 w systemach 64-bitowych.W pamięci podręcznej rozszerzone procedury przechowywane rozmiar tabela mieszania może być maksymalnie 127 w systemach 32-bitowych i 64-bitowych.Aby uzyskać więcej informacji na temat typów pamięci podręcznej i tabel zbędnych danych, zobacz sys.dm_os_memory_cache_hash_tables (języka Transact-SQL).

refcounts

int

Liczba obiektów pamięci podręcznej, które odwołuje się do tego obiektu pamięci podręcznej.Refcounts musi być co najmniej 1 dla wpisu w pamięci podręcznej.

usecounts

int

Liczba wykorzystanych tego obiektu pamięci podręcznej od czasu jego powstania.

size_in_bytes

int

Liczba bajtów zużywane przez obiekt pamięć podręczną.

memory_object_address

varbinary(8)

Adres pamięci buforowany wpis.Ta wartość może być używany z sys.dm_os_memory_objects uzyskać podział pamięci buforowanego planu oraz z sys.dm_os_memory_cache_entries_entries uzyskać koszt buforowanie zapisu.

cacheobjtype

nvarchar(34)

Typ obiektu w pamięci podręcznej.Wartość może być jedną z następujących czynności:

  • Skompilowany Plan

  • Skompilowany Plan skrótowej

  • Analizy drzewa

  • Rozszerzone Proc

  • Środowisko CLR skompilowany Func

  • Środowisko CLR skompilowany Proc

objtype

nvarchar(16)

Typ obiektu.Wartość może być jedną z następujących czynności:

WartośćOpis
ProcProcedura przechowywana
PrzygotowaneGotowa instrukcja
Ad hocKwerend ad hoc1
ReplProcProcedurę filtrowania replikacji
WyzwalaczWyzwalacz
WidokWidok
DefaultDefault
UsrTabUżytkownik tabela
SysTabSystem tabela
WyboruOgraniczenie typu CHECK
RegułyReguły

plan_handle

varbinary(64)

Identyfikator planu w pamięci.Ten identyfikator jest przejściowa i pozostaje stała , tylko wtedy, gdy plan pozostaje w pamięci podręcznej.Wartość ta może być używana z następujących funkcji dynamicznego zarządzania:

sys.dm_exec_sql_text

sys.dm_exec_query_plan

sys.dm_exec_plan_attributes

pool_id

int

Identyfikator puli zasób , w stosunku do którego należy rozliczać tego planu wykorzystania pamięci.

1 Odnosi się do Transact-SQL przekazany jako zdarzenia języka za pomocą osql lub polecenie sqlcmd zamiast jako zdalnego wywołania procedury.

Uprawnienia

Wymaga uprawnienia Wyświetlanie stanu serwera na serwerze.

Przykłady

A.Zwracanie tekstu partia zbuforowane wpisy, które są używane wielokrotnie

Poniższy przykład zwraca tekst SQL wszystkie wpisy pamięci podręcznej użyte więcej niż raz.

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.Zwracanie planów kwerend dla wszystkich buforowanych wyzwalaczy

Poniższy przykład zwraca planów kwerend wszystkie buforowane wyzwalacze.

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.Zwracanie Ustaw opcje, z którymi został skompilowany plan

Poniższy przykład zwraca Ustaw opcje, z którymi został skompilowany plan.sql_handle Dla planu jest również zwracana.PRZESTAWNE operator jest używany do produkcji set_options i sql_handle atrybuty jako kolumny, a nie jako wiersze.Aby uzyskać więcej informacji o wartości zwracane w set_options, zobacz sys.dm_exec_plan_attributes (języka 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.Zwracanie podział pamięci wszystkie buforowane plany skompilowany

Poniższy przykład zwraca podział pamięci używanej przez wszystkie plany skompilowany w pamięci podręcznej.

SELECT plan_handle, ecp.memory_object_address AS CompiledPlan_MemoryObject, 
    omo.memory_object_address, pages_allocated_count, 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