FreeProcCache ve FreeSystemCache arasındaki fark


12

Şu anda DBCC FREEPROCCACHEçalışan SQL sorguları arasında arabellek havuzundan bilgi silmek istediğinizde çalıştırın. Ancak, bu Technet makalesine referansta bulunuyordum DBCC FREESYSTEMCACHE. Ne önbelleğe gelmez FREESYSTEMCACHEo mendil FREEPROCCACHEdeğil mi?

Yanıtlar:


25

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

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.