Aracılığıyla paylaş


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.

Konu bağlantısı simgesiTransact-SQL sözdizimi kuralları

Sözdizimi

DBCC FREEPROCCACHE [ ( { plan_handle | sql_handle | pool_name } ) ] [ WITH NO_INFOMSGS ]

Bağımsız değişkenler

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