BCC DROPCLEANBUFFERS est utilisé pour vider le cache de données en mémoire, et généralement, lors de l’ajustement des performances, nous exécutons DBCC DROP CLEANBUFFERS avant l’exécution de l’instruction afin de faciliter le temps d’exécution et la consommation physique d’une instruction.
Cependant, cette astuce n’est pas toujours très efficace.
Certaines personnes ont peut-être rencontré ce phénomène,Même si des DBCC DROPCLEANBUFFERS sont exécutés, il n’y a toujours pas de lecture physique dans les informations de sortie de SSMS, et cette instruction correspond toujours aux données lues depuis la mémoire (lecture logique)。
Vous serez surpris, « Le tampon dans la mémoire n’est-il pas vidé, pourquoi n’y a-t-il pas de lecture physique ? » Ce phénomène est-il invalide pour les DBCC DROPCLEANBUFFERS ? ”
Non. Les DROP CLEANBUFFERS peuvent effectivement être utilisés pour vider le cache de données en mémoire, mais seulement les pages de cache en état propre ; en revanche, si ces pages sont sales, c’est-à-dire des pages de données en mémoire modifiées et non synchronisées avec le disque, alors elles ne peuvent pas être effacées du cache, cela pour des raisons de performance.
Ainsi, lorsque vous rencontrez DROP CLEANBUFFERS « invalide », essayez de synchroniser manuellement les pages de données en mémoire et sur disque, en réalisant :
Vous pouvez aussi vérifier le nombre et la taille des pages propres et sales dans la mémoire actuelle en disant ce qui suit :
Commande de nettoyage du cache :
Langue source:La connexion hyperlientérée est visible. |