Plan önbelleğini temizlemenin sekiz farklı yolu
1. Tüm örnek için plan önbelleğindeki tüm öğeleri kaldırın
DBCC FREEPROCCACHE;
Plan önbelleğini dikkatlice temizlemek için bunu kullanın. Plan önbelleğinin boşaltılması, örneğin, saklı bir yordamın önbellekten yeniden kullanılması yerine yeniden derlenmesine neden olur. Bu, sorgu performansında ani ve geçici bir düşüşe neden olabilir.
2. Tüm örnek için plan önbelleğini temizleyin ve normal tamamlanma mesajını bastırın
"DBCC yürütmesi tamamlandı. DBCC hata mesajları yazdırdıysa, sistem yöneticinize başvurun."
DBCC FREEPROCCACHE WITH NO_INFOMSGS;
3. Tüm örnek için geçici ve hazırlanmış plan önbelleğini yıkayın
DBCC FREESYSTEMCACHE ('SQL Plans');
4. Bir kaynak havuzu için geçici ve hazırlanmış plan önbelleğini yıkayın
DBCC FREESYSTEMCACHE ('SQL Plans', 'LimitedIOPool');
5. Tek bir kaynak havuzu için tüm plan önbelleğini temizleyin
DBCC FREEPROCCACHE ('LimitedIOPool');
6. Bir veritabanı için plan önbelleğinden tüm öğeleri kaldırın (SQL Azure'da çalışmaz)
-- Get DBID from one database name first
DECLARE @intDBID INT;
SET @intDBID = (SELECT [dbid]
FROM master.dbo.sysdatabases
WHERE name = N'AdventureWorks2014');
DBCC FLUSHPROCINDB (@intDBID);
7. Geçerli veritabanı için plan önbelleğini temizle
USE AdventureWorks2014;
GO
-- New in SQL Server 2016 and SQL Azure
ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE;
8. Bir sorgu planını önbellekten kaldırın
USE AdventureWorks2014;
GO
-- Run a stored procedure or query
EXEC dbo.uspGetEmployeeManagers 9;
-- Find the plan handle for that query
-- OPTION (RECOMPILE) keeps this query from going into the plan cache
SELECT cp.plan_handle, cp.objtype, cp.usecounts,
DB_NAME(st.dbid) AS [DatabaseName]
FROM sys.dm_exec_cached_plans AS cp CROSS APPLY sys.dm_exec_sql_text(plan_handle) AS st
WHERE OBJECT_NAME (st.objectid)
LIKE N'%uspGetEmployeeManagers%' OPTION (RECOMPILE);
-- Remove the specific query plan from the cache using the plan handle from the above query
DBCC FREEPROCCACHE (0x050011007A2CC30E204991F30200000001000000000000000000000000000000000000000000000000000000);
Kaynak 1 2 3