DBCC FREEPROCCACHE (Transact-SQL)
Usuwa wszystkie elementy z pamięci podręcznej planu, usuwa określonego planu z pamięci podręcznej plan określając uchwyt planu lub SQL lub usuwa wszystkie wpisy pamięci podręcznej skojarzonego z puli określonego zasób .
Składnia
DBCC FREEPROCCACHE [ ( { plan_handle | sql_handle | pool_name } ) ] [ WITH NO_INFOMSGS ]
Argumenty
( { plan_handle | sql_handle | pool_name } )
plan_handlejednoznacznie identyfikuje plan kwerend dla partia , została wykonana i którego plan znajduje się w pamięci podręcznej planu.plan_handlejest varbinary(64) i może być otrzymana z następujące obiekty dynamiczne zarządzanie:sql_handleto dojście SQL partia do wyczyszczenia.sql_handlejest varbinary(64) i może być otrzymana z następujące obiekty dynamiczne zarządzanie:
pool_namejest to nazwa puli zasób Resource Governor.pool_namejest sysname i może zostać uzyskany podczas badania sys.dm_resource_governor_resource_pools dynamiczny widok zarządzania.
Aby skojarzyć Resource Governor grupa obciążenia z puli zasób , kwerenda sys.dm_resource_governor_workload_groups dynamiczny widok zarządzania.Informacje o grupa obciążenia dla sesjakwerendy sys.dm_exec_sessions dynamiczny widok zarządzania.
Z NO_INFOMSGS
Pomija wszystkie komunikaty informacyjne.
Uwagi
Ostrożnie wyczyścić pamięć podręczną plan za pomocą DBCC FREEPROCCACHE.Powoduje zwolnienie pamięci podręcznej plan, na przykład procedura składowana ponowne kompilacje zamiast ponownie z pamięci podręcznej.Może to spowodować nagłe, tymczasowe spadek wydajności kwerendy.Dla każdego cachestore wyczyszczone w pamięci podręcznej planu SQL Server dziennik błędów będzie zawierać następujący komunikat informacyjny: "SQL ServerNapotkano %d zamieniono opróżniania dla '% s' cachestore cachestore (część planu w pamięci podręcznej) ze względu na "dbcc freeproccache" lub "dbcc freesystemcache" operacji." Ten komunikat jest rejestrowany co pięć minut, tak długo, jak jest opróżniany z pamięci podręcznej w tym przedziale czas .
Zestawy wyników
Gdy NO_INFOMSGS Z klauzula nie jest określony, zwraca DBCC FREEPROCCACHE:
"DBCC Zakończono wykonanie.Jeśli DBCC drukowane komunikaty o błędach, skontaktuj się z administrator systemu."
Uprawnienia
Wymaga uprawnienia do zmiany stanu serwera na serwerze.
Przykłady
A.Czyszczenie planu kwerend z pamięci podręcznej plan
W następującym przykładzie usunięto planu kwerend z pamięci podręcznej planu, określając uchwyt planu kwerend.W celu zapewnienia, że przykładowa kwerenda znajduje się w pamięci podręcznej plan, najpierw jest wykonywany kwerendy.sys.dm_exec_cached_plans i sys.dm_exec_sql_text Widoki dynamiczne zarządzanie są proszeni o zwraca uchwyt plan dla kwerendy.Wartość dojścia planu z zestaw wyników zostanie wstawiony na DBCC FREEPROCACHE instrukcja usunąć tylko planu z pamięci podręcznej planu.
USE AdventureWorks2008R2;
GO
SELECT * FROM Person.Address;
GO
SELECT plan_handle, st.text
FROM sys.dm_exec_cached_plans
CROSS APPLY sys.dm_exec_sql_text(plan_handle) AS st
WHERE text LIKE N'SELECT * FROM Person.Address%';
GO
Oto zestaw wyników.
plan_handle text
-------------------------------------------------- -----------------------------
0x060006001ECA270EC0215D05000000000000000000000000 SELECT * FROM Person.Address;
(1 row(s) affected)
-- Remove the specific plan from the cache.
DBCC FREEPROCCACHE (0x060006001ECA270EC0215D05000000000000000000000000);
GO
B.Wyczyszczenie wszystkich planów z pamięci podręcznej plan
W następującym przykładzie usunięto wszystkie elementy z pamięci podręcznej planu.Z NO_INFOMSGS klauzula określono zapobiec wyświetlaniu komunikatu informacji.
DBCC FREEPROCCACHE WITH NO_INFOMSGS;
C.Wyczyszczenie wszystkich wpisów pamięci podręcznej skojarzony z pulą zasób
W następującym przykładzie usunięto wszystkie wpisy pamięci podręcznej skojarzonego z puli określonego zasób .sys.dm_resource_governor_resource_pools Widok jest poszukiwana najpierw do uzyskania wartości dla pool_name.
SELECT * FROM sys.dm_resource_governor_resource_pools;
GO
DBCC FREEPROCCACHE ('default');
GO
Zobacz także