SQL DBCC FREEPROCCACHE

2-paź-2017

Ok ok, wiemy, że wyczyszczenie cache procedur na serwerze może „dobić serwer”, bo wszystkie skompilowane plany zapytań trzeba zbudować od nowa, ale – to polecenie można też uruchomić z mniejszym impaktem. Idziemy po kolei rozpoczynając od bomby a kończąc na komarze:

DBCC FREEPROCCACHE;

czyści cache dla całej instancji – duży impakt

DBCC FLUSHPROCINDB (8)

czyści cache dla jednej bazy danych (tutaj dla bazy z database_id = 8). Duży impakt dla bazy ale znacznie mniejszy dla serwera, chociaż jak pomyślisz o konieczności skompilowania procedur, to będą one kompilowane przez instancję, więc potencjalnie inne procesy z innych baz danych będą miały ograniczony dostęp do CPU przynajmniej przez chwilę

DBCC FREEPROCCACHE (0x05000800A7B3526C4FD15055A40000000000000000000000);

usunie jeden plan wykonania dla jednego zapytania. Identyfikator planu zapytania znajdziesz w sys.dm_exec_cached_plans. Ten widok można łączyć z funkcją sys.dm_exec_sql_text(plan_handle), co pozwoli odnaleźć plan dla zapytania o znanym tekście. Impakt minimalny

Ładnie opisuje to Glenn Berry o tutaj

 

 

 

Komentarze są wyłączone

Autor: Rafał Kraik