Partager via


DBCC FREESYSTEMCACHE (Transact-SQL)

Libère les entrées non utilisées de tous les caches. Moteur de base de données SQL Server nettoie, en arrière-plan et de manière proactive, les entrées de cache non utilisées afin de libérer de la mémoire pour les entrées en cours. Vous pouvez toutefois utiliser cette commande pour supprimer manuellement les entrées non utilisées de tous les caches ou d'un cache de pool du gouverneur de ressources spécifié.

Icône Lien de rubriqueConventions de syntaxe Transact-SQL

Syntaxe

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

Arguments

  • ( 'ALL' [, pool_name ] )
    ALL spécifie tous les caches pris en charge.

    pool_name spécifie un cache de pool du gouverneur de ressources. Seules les entrées associées à ce pool seront libérées.

  • MARK_IN_USE_FOR_REMOVAL
    Libère de manière asynchrone les entrées en cours d'utilisation de leurs caches respectifs une fois qu'elles ne sont plus utilisées. Ne sont pas affectées les entrées créées dans le cache après l'exécution de l'instruction DBCC FREESYSTEMCACHE WITH MARK_IN_USE_FOR_REMOVAL.

  • NO_INFOMSGS
    Supprime tous les messages d'information.

Jeux de résultats

DBCC FREESYSTEMCACHE retourne :

« Exécution de DBCC terminée. Si DBCC vous a adressé des messages d'erreur, contactez l'administrateur système. »

Notes

L'exécution de DBCC FREESYSTEMCACHE efface le cache du plan pour l'instance de SQL Server. Cette opération entraîne la recompilation de tous les plans d'exécution ultérieurs et peut entraîner une baisse temporaire et brutale des performances des requêtes. Pour chaque mémoire cache effacée dans le cache de plan, le journal des erreurs SQL Server contient le message d'information suivant : « SQL Server a rencontré %d occurrence(s) de vidages de mémoire cache pour la mémoire cache '%s' (partie du cache du plan) en raison d'opérations 'DBCC FREEPROCCACHE' ou 'DBCC FREESYSTEMCACHE' ». Ce message est enregistré toutes les cinq minutes si le cache est vidé au cours de cet intervalle.

Autorisations

Nécessite l'autorisation ALTER SERVER STATE sur le serveur.

Exemples

A. Libération des entrées de cache non utilisées d'un cache de pool du gouverneur de ressources

L'exemple suivant illustre comment nettoyer des caches qui sont dédiés à un pool de ressources du gouverneur de ressources spécifié.

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

B. Libération des entrées de leurs caches respectifs une fois qu'elles ne sont plus utilisées

L'exemple suivant utilise la clause MARK_IN_USE_FOR_REMOVAL pour libérer les entrées de tous les caches actuels une fois qu'elles ne sont plus utilisées.

DBCC FREESYSTEMCACHE ('ALL') WITH MARK_IN_USE_FOR_REMOVAL;