Lezen in het Engels

Delen via


DBCC FREESYSTEMCACHE (Transact-SQL)

van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Alle ongebruikte cachevermeldingen uit alle caches worden vrijgegeven. De SQL Server Database Engine schoont proactief ongebruikte cachevermeldingen op de achtergrond op om geheugen beschikbaar te maken voor huidige vermeldingen. U kunt deze opdracht echter gebruiken om ongebruikte vermeldingen handmatig uit elke cache of uit een opgegeven Resource Governor-poolcache te verwijderen.

Transact-SQL syntaxisconventies

Syntaxis

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

Argumenten

( 'ALL' [ , pool_name ] )

  • ALLE

    Hiermee geeft u alle ondersteunde caches op.

  • pool_name

    Hiermee geeft u een cache voor resource governor-pools op. Alleen vermeldingen die aan deze pool zijn gekoppeld, worden vrijgemaakt. Voer de volgende opdracht uit om de namen van de beschikbare pools weer te geven:

    SQL
    SELECT name FROM sys.dm_resource_governor_resource_pools;
    

De meeste, maar niet alle caches kunnen afzonderlijk worden vrijgemaakt met behulp van deze opdracht.

MARK_IN_USE_FOR_REMOVAL

Asynchroon worden momenteel gebruikte vermeldingen uit hun respectieve caches vrijgemaakt nadat ze ongebruikt zijn. Nadat de DBCC FREESYSTEMCACHE WITH MARK_IN_USE_FOR_REMOVAL is uitgevoerd, worden nieuwe vermeldingen die in de cache zijn gemaakt, niet beïnvloed.

NO_INFOMSGS

Onderdrukt alle informatieve berichten.

Opmerkingen

Als u DBCC FREESYSTEMCACHE uitvoert, wordt de plancache voor het exemplaar van SQL Server gewist. Als u de plancache wist, worden alle geplande uitvoeringsplannen opnieuw gecompileren en kan dit leiden tot een plotselinge, tijdelijke vermindering van de queryprestaties. Voor elk gewist cachearchief in de plancache bevat het SQL Server-foutenlogboek het volgende informatieve bericht:

Output
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.

Dit bericht wordt elke vijf minuten geregistreerd zolang de cache binnen dat tijdsinterval wordt leeggemaakt.

Resultatensets

DBCC FREESYSTEMCACHE retourneert:

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

Machtigingen

Hiervoor is de machtiging ALTER SERVER STATE op de server vereist.

Voorbeelden

Een. Ongebruikte cachevermeldingen vrijgeven uit een Resource Governor-poolcache

In het volgende voorbeeld ziet u hoe u caches opschoont die zijn toegewezen aan een opgegeven Resource Governor-resourcegroep.

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

B. Releasevermeldingen uit hun respectieve caches nadat ze ongebruikt zijn geworden

In het volgende voorbeeld wordt de MARK_IN_USE_FOR_REMOVAL-component gebruikt om vermeldingen uit alle huidige caches vrij te geven zodra de vermeldingen niet meer worden gebruikt.

SQL
DBCC FREESYSTEMCACHE ('ALL') WITH MARK_IN_USE_FOR_REMOVAL;

Zie ook