Udostępnij za pośrednictwem


DBCC FREESYSTEMCACHE (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Zwalnia wszystkie nieużywane wpisy pamięci podręcznej ze wszystkich pamięci podręcznych. Aparat bazy danych programu SQL Server aktywnie czyści nieużywane wpisy pamięci podręcznej w tle, aby udostępnić pamięć dla bieżących wpisów. Można jednak użyć tego polecenia, aby ręcznie usunąć nieużywane wpisy z każdej pamięci podręcznej lub z określonej pamięci podręcznej puli zarządcy zasobów.

Transact-SQL konwencje składni

Składnia

DBCC FREESYSTEMCACHE
    ( 'ALL' [ , pool_name ] )
    [ WITH
    { [ MARK_IN_USE_FOR_REMOVAL ] , [ NO_INFOMSGS ]  }
    ]

Argumenty

( 'ALL' [ , pool_name ] )

  • CAŁY

    Określa wszystkie obsługiwane pamięci podręczne.

  • pool_name

    Określa pamięć podręczną puli zarządcy zasobów. Zwalniane są tylko wpisy skojarzone z tą pulą. Aby wyświetlić listę dostępnych nazw puli, uruchom polecenie:

    SELECT name FROM sys.dm_resource_governor_resource_pools;
    

Większość, ale nie wszystkie, pamięci podręczne mogą być zwalniane indywidualnie przy użyciu tego polecenia.

MARK_IN_USE_FOR_REMOVAL

Asynchronicznie zwalnia obecnie używane wpisy z odpowiednich pamięci podręcznych po ich nieużywaniu. Po uruchomieniu DBCC FREESYSTEMCACHE WITH MARK_IN_USE_FOR_REMOVAL nowe wpisy utworzone w pamięci podręcznej nie mają wpływu.

NO_INFOMSGS

Pomija wszystkie komunikaty informacyjne.

Uwagi

Uruchomienie DBCC FREESYSTEMCACHE czyści pamięć podręczną planu dla wystąpienia programu SQL Server. Wyczyszczenie pamięci podręcznej planu powoduje ponowne skompilowanie wszystkich nadchodzących planów wykonywania i może spowodować nagłe, tymczasowe zmniejszenie wydajności zapytań. Dla każdego wyczyszczonego magazynu pamięci podręcznej w pamięci podręcznej planu dziennik błędów programu SQL Server zawiera następujący komunikat informacyjny:

SQL Server has encountered %d occurrence(s) of cachestore flush for the '%s' cachestore (part of plan cache) due to 'DBCC FREEPROCCACHE' or 'DBCC FREESYSTEMCACHE' operations.

Ten komunikat jest rejestrowany co pięć minut, o ile pamięć podręczna jest opróżniona w tym przedziale czasu.

Zestawy wyników

funkcja DBCC FREESYSTEMCACHE zwraca:

DBCC execution completed. If DBCC printed error messages, contact your system administrator.

Uprawnienia

Wymaga uprawnienia ALTER SERVER STATE na serwerze.

Przykłady

A. Zwolnij nieużywane wpisy pamięci podręcznej z pamięci podręcznej puli zarządcy zasobów

Poniższy przykład ilustruje sposób czyszczenia pamięci podręcznych przeznaczonych dla określonej puli zasobów zarządcy zasobów.

-- Clean all the caches with entries specific to the
-- resource pool named "default".
DBCC FREESYSTEMCACHE ('ALL', [default]);

B. Zwalnianie wpisów z odpowiednich pamięci podręcznych po ich nieużywaniu

W poniższym przykładzie użyto klauzuli MARK_IN_USE_FOR_REMOVAL, aby zwolnić wpisy ze wszystkich bieżących pamięci podręcznych, gdy wpisy staną się nieużywane.

DBCC FREESYSTEMCACHE ('ALL') WITH MARK_IN_USE_FOR_REMOVAL;

Zobacz też