Καθαρίζει όλα τα μη ενεργά/χρησιμοποιούμενα περιεχόμενα (cache entries) από όλες τις cache. Αν και ο SQL Server ενεργεί προκαταβολικά ώστε να γίνει αυτό, εντούτοις μπορώ χειροκίνητα να το κάνω αυτό εκτελώντας την
DBCC FREESYSTEMCACHE ('ALL')
Φυσικά το παραπάνω θα πρέπει να το κάνουμε μόνο εφόσον θέλουμε να καθαρίσουμε τα πάντα και φυσικά λαμβάνοντας υπόψη τα Remarks από τα BOL.
Καλό είναι να εστιάζουμε την προσοχή μας σε συγκεκριμένο pool και να σβήνουμε αυτό εφόσον έχουμε δει ότι μας δημιουργεί πρόβλημα το μέγεθος του. Αυτό μπορεί να γίνει με την
DBCC FREESYSTEMCACHE ('pool name')
Μπορείς να δεις τα pools που υπάρχουν εκτελώντας το
SELECT DISTINCT name
FROM sys.dm_os_memory_clerks
Σε αρκετές περιπτώσεις καθαρίζοντας τα παρακάτω pools βελτιώνω αρκετά το performance.
- SQL Plans : σε περίπτωση που δεν έχω κάνει optimize τον SQL Server για plan cache bloat.
- TokenAndPermUserStore : εάν είμαι σε SQL Server 2005 SP2 και πίσω με την οποία καθαρίζουμε την μνήμη που έχει καταναλωθεί από την Security Cache για την δημιουργία objects στην tempdb.
DBCC FREESYSTEMCACHE('SQL Plans')
DBCC FREESYSTEMCACHE('TokenAndPermUserStore')