Comme le titre implique, je vais supprimer uniquement des requêtes ad hoc (non préparées) du cache de plan dans SQL Server 2014/2016, car elle occupe plus de 50% de ma mémoire principale. Avez-vous une suggestion?
Merci beaucoup.
DECLARE @plan_handle varbinary(64)
DECLARE db_cursor CURSOR FOR
SELECT plan_handle
FROM sys.dm_exec_cached_plans
WHERE objtype = 'Adhoc' -- and usecounts = 1 -- optional: just delete the ones that are used only once
OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @plan_handle
WHILE @@FETCH_STATUS = 0
BEGIN
DBCC FREEPROCCACHE (@plan_handle);
FETCH NEXT FROM db_cursor INTO @plan_handle
END
CLOSE db_cursor
DEALLOCATE db_cursor