Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Azure Synapse Analytics
Analytics Platform Sistemi (PDW)
Microsoft Fabric'te SQL Veritabanı
Plan önbelleğindeki tüm öğeleri kaldırır, bir plan tanıtıcısı veya SQL tanıtıcısı belirterek belirli bir planı plan önbelleğinden kaldırır veya belirtilen kaynak havuzuyla ilişkili tüm önbellek girdilerini kaldırır.
Uyarı
DBCC FREEPROCCACHE yerel olarak derlenmiş saklı yordamlar için yürütme istatistiklerini temizlemez. Yordam önbelleği yerel olarak derlenmiş saklı yordamlar hakkında bilgi içermez. Yordam yürütmelerinden toplanan tüm yürütme istatistikleri, yürütme istatistikleri DMV'lerinde görünür: sys.dm_exec_procedure_stats (Transact-SQL) ve sys.dm_exec_query_plan (Transact-SQL).
Transact-SQL söz dizimi kuralları
Sözdizimi
SQL Server ve Azure SQL Veritabanı söz dizimi:
DBCC FREEPROCCACHE [ ( { plan_handle | sql_handle | pool_name } ) ] [ WITH NO_INFOMSGS ]
Azure Synapse Analytics ve Analytics Platform Sistemi (PDW) için söz dizimi:
DBCC FREEPROCCACHE [ ( COMPUTE | ALL ) ]
[ WITH NO_INFOMSGS ]
[;]
Arguments
( { plan_handle | sql_handle | pool_name } )
plan_handle , yürütülen ve planı plan önbelleğinde bulunan bir toplu iş için sorgu planını benzersiz olarak tanımlar. plan_handlevarbinary(64) olup aşağıdaki dinamik yönetim nesnelerinden alınabilir:
- sys.dm_exec_cached_plans
- sys.dm_exec_requests
- sys.dm_exec_query_memory_grants
- sys.dm_exec_query_stats
sql_handle temizlenecek toplu işin SQL tanıtıcısıdır. sql_handlevarbinary(64) olup aşağıdaki dinamik yönetim nesnelerinden alınabilir:
- sys.dm_exec_query_stats
- sys.dm_exec_requests
- sys.dm_exec_cursors
- sys.dm_exec_xml_handles
- sys.dm_exec_query_memory_grants
pool_name , Resource Governor kaynak havuzunun adıdır. pool_namesysname'dir ve sys.dm_resource_governor_resource_pools dinamik yönetim görünümü sorgulanarak elde edilebilir.
Resource Governor iş yükü grubunu bir kaynak havuzuyla ilişkilendirmek için dinamik yönetim görünümünü sys.dm_resource_governor_workload_groups sorgula. Bir oturumun iş yükü grubu hakkında bilgi için sys.dm_exec_sessions dinamik yönetim görünümünü sorgular.
BİLGİ_MSJSIZ
Tüm bilgilendirme iletilerini gizler.
BİLGİ İŞLEM
Sorgu planı önbelleğini her İşlem düğümünden temizleyin. Bu varsayılan değerdir.
HEPSİ
Sorgu planı önbelleğini her İşlem düğümünden ve Denetim düğümünden temizleyin.
Uyarı
SQL Server 2016(13.x) ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE ile başlayarak geçerli veritabanı için yordam (plan) önbelleğini temizlemek için kullanılabilir.
Açıklamalar
Plan önbelleğini dikkatlice temizlemek için kullanın DBCC FREEPROCCACHE . Yordam (plan) önbelleğinin temizlenmesi tüm planların çıkarılmasına neden olur ve gelen sorgu yürütmeleri, önceden önbelleğe alınmış herhangi bir planı yeniden kullanmak yerine yeni bir plan derler.
Bu, yeni derleme sayısı arttıkça sorgu performansında ani ve geçici bir düşüşe neden olabilir. Plan önbelleğindeki temizlenen her önbellek deposu için SQL Server hata günlüğü aşağıdaki bilgilendirme iletisini içerir:
SQL Server has encountered %d occurrence(s) of cachestore flush for the '%s' cachestore (part of plan cache) due to 'DBCC FREEPROCCACHE' or 'DBCC FREESYSTEMCACHE' operations.
Bu ileti, önbellek bu zaman aralığında temizlendiği sürece beş dakikada bir günlüğe kaydedilir.
Aşağıdaki yeniden yapılandırma işlemleri yordam önbelleğini de temizler:
- erişim denetimi önbellek demet sayısı
- erişim denetimi önbellek kotası
- CLR etkinleştirildi
- paralellik için maliyet eşiği
- çapraz veritabanı sahiplik zinciri
- dizin oluşturma belleği
- maksimum paralellik derecesi
- en fazla sunucu belleği
- maksimum metin repl boyutu
- en fazla çalışan iş parçacığı
- sorgu başına en az bellek
- en az sunucu belleği
- sorgu valisi maliyet sınırı
- sorgu bekleme
- uzak sorgu zaman aşımı
- kullanıcı seçenekleri
Azure SQL Veritabanı'nda, DBCC FREEPROCCACHE geçerli veritabanını veya elastik havuzu barındıran veritabanı altyapısı örneğinde çalışır. Kullanıcı veritabanında yürütülürken DBCC FREEPROCCACHE bu veritabanı için plan önbelleği temizleniyor. Veritabanı bir elastik havuzdaysa, bu elastik havuzdaki diğer tüm veritabanlarında plan önbelleğini de temizler. Komutunun veritabanında yürütülmesinin master aynı mantıksal sunucudaki diğer veritabanları üzerinde hiçbir etkisi yoktur. Temel, S0 veya S1 hizmet amacını kullanarak bir veritabanında bu komutun yürütülmesi, aynı mantıksal sunucudaki bu hizmet hedeflerini kullanarak diğer veritabanlarındaki plan önbelleğini temizleyebilirsiniz.
Sonuç kümeleri
WITH NO_INFOMSGS Yan tümce belirtilmediğinde şunu DBCC FREEPROCCACHE döndürür:
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Permissions
Şunlar için geçerlidir: SQL Server, Analiz Platformu Sistemi (PDW)
- Sunucuda ALTER SERVER STATE izni gerektirir.
Şunlar için geçerlidir: Azure SQL Veritabanı
- # #MS_ServerStateManager## sunucu rolü üyeliği gerektirir.
Şunlar için geçerlidir: Azure Synapse Analytics
- db_owner sabit sunucu rolünde üyelik gerektirir.
Azure Synapse Analytics ve Analytics Platform Sistemi (PDW) için açıklamalar
Birden çok DBCC FREEPROCCACHE komut eşzamanlı olarak çalıştırılabilir.
Azure Synapse Analytics veya Analytics Platform Sistemi'nde (PDW) plan önbelleğini temizlemek, daha önce önbelleğe alınmış herhangi bir planı yeniden kullanmak yerine gelen sorgular yeni bir plan derledikçe sorgu performansında geçici bir düşüşe neden olabilir.
DBCC FREEPROCCACHE (COMPUTE) yalnızca SQL Server'ın İşlem düğümlerinde çalıştırıldığında sorguları yeniden derlemesine neden olur. Azure Synapse Analytics veya Analytics Platform Sistemi'nin (PDW) Denetim düğümünde oluşturulan paralel sorgu planını yeniden derlemesine neden olmaz.
DBCC FREEPROCCACHE yürütme sırasında iptal edilebilir.
Azure Synapse Analytics ve Analytics Platform Sistemi (PDW) için sınırlamalar ve kısıtlamalar
DBCC FREEPROCCACHE bir işlem içinde çalıştırılamaz.
DBCC FREEPROCCACHE bir EXPLAIN deyiminde desteklenmez.
Azure Synapse Analytics ve Analytics Platform Sistemi (PDW) için meta veriler
Çalıştırıldığında sys.pdw_exec_requests sistem görünümüne DBCC FREEPROCCACHE yeni bir satır eklenir.
Örnekler: SQL Server
A. Plan önbelleğinden sorgu planını temizleme
Aşağıdaki örnek, sorgu planı tutamacını belirterek bir sorgu planını plan önbelleğinden temizler. Örnek sorgunun plan önbelleğinde olduğundan emin olmak için önce sorgu yürütülür.
sys.dm_exec_cached_plans ve sys.dm_exec_sql_text dinamik yönetim görünümleri sorgunun plan tutamacını döndürmek için sorgulanır.
Sonuç kümesindeki plan işleme değeri daha sonra, plan önbelleğinden yalnızca bu planı kaldırmak için deyimine eklenir DBCC FREEPROCACHE .
USE AdventureWorks2022;
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 aşağıdadı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. Plan önbelleğindeki tüm planları temizleme
Aşağıdaki örnek, plan önbelleğindeki tüm öğeleri temizler. Bilgi WITH NO_INFOMSGS iletisinin görüntülenmesini önlemek için yan tümcesi belirtilir.
DBCC FREEPROCCACHE WITH NO_INFOMSGS;
C. Kaynak havuzuyla ilişkili tüm önbellek girdilerini temizleme
Aşağıdaki örnek, belirtilen kaynak havuzuyla ilişkili tüm önbellek girdilerini temizler. Görünüm sys.dm_resource_governor_resource_pools ilk olarak pool_name değerini almak için sorgulanır.
SELECT * FROM sys.dm_resource_governor_resource_pools;
GO
DBCC FREEPROCCACHE ('default');
GO
Örnekler: Azure Synapse Analytics ve Analytics Platform Sistemi (PDW)
D. DBCC FREEPROCCACHE temel söz dizimi
Aşağıdaki örnek, mevcut tüm sorgu planı önbelleklerini İşlem düğümlerinden kaldırır. Bağlam olarak ayarlanmış UserDbSalesolsa da, tüm veritabanları için İşlem düğümü sorgu planı önbellekleri kaldırılır. yan tümcesi WITH NO_INFOMSGS , bilgi iletilerinin sonuçlarda görünmesini engeller.
USE UserDbSales;
DBCC FREEPROCCACHE (COMPUTE) WITH NO_INFOMSGS;
Aşağıdaki örnekte, bilgi iletilerinin sonuçlarda gösterilmesi dışında, önceki örnekle aynı sonuçlar bulunur.
USE UserDbSales;
DBCC FREEPROCCACHE (COMPUTE);
Bilgilendirme iletileri istendiğinde ve yürütme başarılı olduğunda, sorgu sonuçları İşlem düğümü başına bir satıra sahip olur.
E. DBCC FREEPROCCACHE çalıştırma izni verme
Aşağıdaki örnek, komutunu çalıştırmak Davidiçin oturum açma DBCC FREEPROCCACHE izni verir.
GRANT ALTER SERVER STATE TO David;
GO