Udostępnij za pośrednictwem


sys.dm_exec_cached_plans (języka Transact-SQL)

Zwraca wiersz dla każdego planu kwerend, które są buforowane przez SQL Server szybsze wykonywanie kwerendy. Aby określić stan flagi śledzenia, należy użyć TRACESTATUS DBCC.

Uwaga

Planów kwerendy dynamiczny widok zarządzania sys.dm_exec_cached_plans mapuje do tabela systemowa syscacheobjects w SQL Server 2000.

Nazwa kolumna

Typ danych

Description

DBCC TRACEON zwraca następujący zestaw wyników (komunikat):

int

Identyfikator kontenera skrótów w pamięci podręcznej, w którym jest umieszczony element.Wartość może sięgać od 0 aż do rozmiaru tabeli skrótów dla danego typu pamięci podręcznej.

W przypadku planów programu SQL i planów obiektów wielkość tabeli skrótów może sięgać do 10007 w systemach 32-bitowych i 40009 w systemach 64-bitowych.W przypadku pamięci podręcznej powiązanych drzew wielkość tabeli skrótów może sięgać do 1009 w systemach 32-bitowych i 4001 w systemach 64-bitowych.Dla pamięci podręcznej rozszerzonych procedur składowanych wielkość tabeli skrótów może sięgać do 127 w systemach 32- i 64-bitowych.Aby uzyskać więcej informacji na temat rodzajów pamięci podręcznej i tabel skrótów, zobacz sys.dm_os_memory_cache_hash_tables (Transact-SQL).

refcounts

int

stats_idRefcounts musi wynosić co najmniej 1 wpisu w pamięci podręcznej.

usecounts

int

liczebniki opartego na 1 w obrębie zestaw kolumn statyczny.

size_in_bytes

int

Zwraca kluczy obcych, które odwołują się klucze podstawowe w tabela serwer połączony.

memory_object_address

varbinary(8)

Adres pamięci zajmowany przez element umieszczony w pamięci podręcznej.Wartość ta w połączeniu z widokiem sys.dm_os_memory_objects pozwala sprawdzić szczegółowe użycie pamięci dla planu zapisanego w pamięci podręcznej, a w połączeniu z widokiem sys.dm_os_memory_cache_entries — koszt umieszczenia elementu w pamięci podręcznej.

cacheobjtype

nvarchar(34)

Typ obiektu w pamięci podręcznej.Może to być jedna z następujących wartości:

  • Skompilowany plan

  • Procedura zastępcza skompilowanego planu

  • Drzewo analizy składni

  • Procedura rozszerzona

  • Skompilowana funkcja środowiska uruchomieniowego języka wspólnego

  • Skompilowana procedura środowiska uruchomieniowego języka wspólnego

objtype

nvarchar(16)

Typ obiektu.Może to być jedna z następujących wartości:

WartośćDescription
ProcProcedura przechowywana
PreparedPrzygotowana instrukcja
AdhocZapytanie ad hoc1
ReplProcProcedurę filtrowania replikacja
WyzwalaczWyzwalacz
Bez opuszczania środowiska, można zarządzać sieci fizycznej i łatwo zespołów projektów.Bez opuszczania środowiska, można zarządzać sieci fizycznej i łatwo zespołów projektów.
DefaultDefault
UsrTabPKTABLE_SCHEM
SysTabPKTABLE_NAME
SprawdźPKCOLUMN_NAME
RegułyReguły

plan_handle

varbinary(64)

Identyfikator planu zapisanego w pamięci.Identyfikator ma charakter tymczasowy i nie zmienia się tylko przez okres pozostawania planu w pamięci podręcznej.Wartość ta może być używana w następujących funkcjach dynamicznego zarządzania:

sp_table_privileges_rowset

sys.dm_exec_query_plan

sys.dm_exec_plan_attributes

pool_id

int

FKTABLE_SCHEM

1  Odnosi się do Transact-SQL przekazywane w języku zdarzeń przy użyciu Osql or SQLCMD zamiast, jak zdalnego wywołania procedury.

Uprawnienia

Wymaga uprawnienia VIEW SERVER STATE na serwerze.

Przykłady

A.FKTABLE_NAME

FKCOLUMN_NAME

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.Nazwa kolumna klucz obcy dla każdej kolumna TABLE_NAME zwracane.

UPDATE_RULE

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 opcji SET, za pomocą których skompilowano plan

DELETE_RULEThe sql_handle for the plan is also returned.Używany jest PIVOT operator do wyjścia set_options i sql_handle Atrybuty kolumny, a nie wierszy. Aby uzyskać więcej informacji na temat 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 informacji o szczegółowym użyciu pamięci dla wszystkich skompilowanych planów zapisanych w pamięci podręcznej

OPÓŹNIENIA

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