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.
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_handlebir sorgu planı, yürüttü ve, planı plan önbelleğinde bulunan bir toplu iş için benzersiz olarak tanımlar.plan_handleİş varbinary(64) ve aşağıdaki dinamik yönetimi nesneleri elde edilebilir:sql_handleTemizlenecek toplu iş SQL tanıtıcı değil.sql_handleİş varbinary(64) ve aşağıdaki dinamik yönetimi nesneleri elde edilebilir:
pool_nameKaynak süresine kaynak havuzu adıdır.pool_nameİş sysname ve sorgulama yaparak elde sys.dm_resource_governor_resource_pools dinamik yönetim görünümü.
Kaynak süresine iş yükü grubu kaynak havuzu ile ilişkilendirmek için sorgu sys.dm_resource_governor_workload_groups dinamik yönetim görünümü.Bir oturum iş yükü grubu hakkında daha fazla bilgi için sorgu sys.dm_exec_sessionsdinamik yönetim görünümü.
NO_INFOMSGS İLE
Bilgi tüm iletileri bastırır.
Açıklamalar
dbcc freeproccache dikkatle plan Önbelleği temizlemek için kullanın.Plan önbelleği boşaltma neden olur, örneğin, yerine çekirdekler bir saklı yordam önbellekten tekrar.Bu ani bir geçici sorgu performans azalmasına neden olabilir.Her plan önbelleğinde temizlenmiş cachestore için SQL Server hata günlüğü aşağıdaki bilgi iletisini içeriği: "SQL Server'% s' için temizleme cachestore yerde %d karşılaştı 'dbcc freeproccache' yüzünden cachestore (planı önbellek parçası) ya da 'dbcc freesystemcache' işlemleri." Bu saat aralığında önbelleği temizlendi sürece bu ileti her beş dakikada bir günlüğe kaydedilir.
Sonuç Kümeleri
WITH NO_INFOMSGS yan tümce belirtilmediği durumlarda dbcc freeproccache döndürür:
"dbcc yürütme tamamlandı.dbcc hata iletileri yazdırıldıysa, 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 bir sorgu planı plan önbelleğinden temizler.Örnek sorgu planı önbellekte olduğundan emin olmak 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 için sorgu planı tutamacını dönmek için sorgulanansonuç kümesi planı tanıtıcı değeri sonra eklenir DBCC FREEPROCACHEdeyim kaldırmak yalnızca bu planından plan önbelleği.
USE AdventureWorks2008R2;
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 temizler.WITH NO_INFOMSGS yan tümce belirtilen bilgi iletisi görüntülenmesini önlemek 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_pools Görünüm değerini elde etmek için sorgulanan ilk pool_name.
SELECT * FROM sys.dm_resource_governor_resource_pools;
GO
DBCC FREEPROCCACHE ('default');
GO
Ayrıca bkz.