Yanıtlar:
FREESYSTEMCACHE, FREEPROCCACHE'ın silmediğini hangi önbellekleri siler?
SQL Server'da birçok sistem önbelleği vardır. SQL 2008R2'ye atıfta bulunuyorum (üzerinde test ettiğim gibi).
Aşağıdaki sorgu kullanılabilir tüm önbellekleri döndürür:
--- ONLY for Educational purpose. Don't attempt to run on PROD !!
select 'DBCC freesystemcache ('+''''+name+''''+')' from sys.dm_os_memory_clerks group by name
-- 155 rows
yani koşacağınız tüm önbellekleri temizlemek istiyorsanız
DBCC FREESYSTEMCACHE ('ALL')
temizlenecek belirli önbellekler için çalıştırabilirsiniz
DBCC FREESYSTEMCACHE ('userdatabase') -- cleans cache for specific user database
DBCC FREESYSTEMCACHE ('tempdb') -- clears cache for tempdb
DBCC FREESYSTEMCACHE ('Temporary Tables & Table Variables') -- clears all the temp table and variables
.. and many more (see above 155 rows returned from sql server 2008R2)
FREEPROCCACHE kullanarak, yukarıda belirtilen ayrıntılı bilgileri bu seviyeden temizleyemezsiniz.
FREEPROCCACHE ==> dan BOL
Plan önbelleğinden tüm öğeleri kaldırır, bir plan tutamacı veya SQL tutamacı belirleyerek belirli bir planı plan önbelleğinden kaldırır veya belirtilen bir kaynak havuzuyla ilişkili tüm önbellek girdilerini kaldırır.
Bu nedenle, bunu yalnızca Plan önbelleği ile ilgili olarak plan işleme ve / veya havuz adıyla önbellekten belirli planları kaldırabileceğinizi düşünebilirsiniz.
DBCC FREEPROCCACHE ile Eğlence Glenn Berry'den bir blog