dbcc freeproccache (Transact-sql)
Planı önbellekten tüm öğeleri kaldırır, belirli bir plan planı önbellekten bir planı veya sql tutamacını belirterek veya belirtilen kaynak havuzu ile ilişkili tüm önbellek girdilerini kaldırır.
Transact-SQL Sözdizim Kuralları
Sözdizimi
DBCC FREEPROCCACHE [ ( { plan_handle | sql_handle | pool_name } ) ] [ WITH NO_INFOMSGS ]
Bağımsız değişkenler
( { plan_handle | sql_handle | pool_name } )
plan_handleo yürüttü ve kimin planı plan önbelleğinde bulunan toplu iş için bir sorgu planı benzersiz olarak tanımlar. plan_handleise varbinary(64)ve aşağıdaki dinamik yönetimi nesneleri elde edilebilir:sql_handleTemizlenecek toplu sql tanıtıcı iş. sql_handleise varbinary(64)ve aşağıdaki dinamik yönetimi nesneleri elde edilebilir:
pool_nameKaynak Governor kaynak havuzu adıdır. pool_nameise sysnameve sorgulayarak elde edilebilir sys.dm_resource_governor_resource_pools dinamik yönetimi görüntüleyin.
Kaynak Governor iş yükünü Grup bir kaynak havuzu ile ilişkilendirmek için sorgu sys.dm_resource_governor_workload_groups yönetimi görüntüleyin. Bir oturum için iş yükünü Grup hakkında daha fazla bilgi için sorgu sys.dm_exec_sessions yönetimi görüntüleyin.
WITH NO_INFOMSGS
Tüm bilgi iletilerini kapatır.
Açıklamalar
dbcc freeproccache dikkatle plan önbelleği temizlemek için kullanın. Plan önbelleği boşaltma neden olur, örneğin, saklı bir yordam yerine recompiled önbellekten yeniden. Bu sorgu performansı ani, geçici bir azalmaya neden olabilir. İçin planı önbellek temizlenir her yerde SQL Serverhata günlüğüne aşağıdaki bilgilendirme iletisi içerecektir: " SQL Server ' % s' cachestore cachestore Temizleme %d karşılaştı 'dbcc freeproccache' nedeniyle cachestore (planı önbellek parçası) ya da 'dbcc freesystemcache' işlemleri." Bu ileti, her beş dakikada bir, önbellek bu süre zarfında boşaltıldığı sürece günlüğe yazılır.
Sonuç Kümeleri
dbcc freeproccache NO_INFOMSGS ile yan tümcesi belirtilen zaman döndürür:
"dbcc yürütme tamamlandı. dbcc hata iletileri yazdırılır, sistem yöneticinize başvurun."
İzinler
Sunucu üzerindeki alter server state izni gerektirir.
Örnekler
A.Bir sorgu planı plan önbelleğinden temizleme
Aşağıdaki örnek, sorgu planı tanıtıcı belirterek planı önbellekten sorgu planı temizler. Örnek sorgu planı önbelleğe sağlamak için sorgu önce yürütülür. sys.dm_exec_ cached_plans Ve sys.dm_exec_sql_ text dinamik yönetimi görünümleri sorgulanan sorgu planı tanıtıcı dönmek. Sonuç kümesi planı tanıtıcı değeri daha sonra içine eklenir DBCC FREEPROCACHEsadece bu planı planı önbellekten kaldırmak için deyimi.
USE AdventureWorks2012;
GO
SELECT * FROM Person.Address;
GO
SELECT plan_handle, st.text
FROM sys.dm_exec_cached_plans
CROSS APPLY sys.dm_exec_sql_text(plan_handle) AS st
WHERE text LIKE N'SELECT * FROM Person.Address%';
GO
Sonuç kümesi buradadır.
plan_handle text
-------------------------------------------------- -----------------------------
0x060006001ECA270EC0215D05000000000000000000000000 SELECT * FROM Person.Address;
(1 row(s) affected)
-- Remove the specific plan from the cache.
DBCC FREEPROCCACHE (0x060006001ECA270EC0215D05000000000000000000000000);
GO
B.Tüm planları plan önbelleğinden temizleme
Aşağıdaki örnek, planı önbellekten tüm öğeleri siler. İLE NO_INFOMSGS yan tümcesi belirtilen bilgiler iletinin görüntülenmesini engellemek için.
DBCC FREEPROCCACHE WITH NO_INFOMSGS;
C.Kaynak havuzu ile ilişkili tüm önbellek girdilerini Temizleme
Aşağıdaki örnek, belirtilen kaynak havuzu ile ilişkili tüm önbellek girdilerini temizler. sys.dm_resource_governor_resource_poolsGörünüm ilk değeri elde etmek için sorgulanan pool_name.
SELECT * FROM sys.dm_resource_governor_resource_pools;
GO
DBCC FREEPROCCACHE ('default');
GO