Saltar al contenido

Cómo borrar el caché de 1 procedimiento almacenado en SQL Server

Solución:

DBCC FreeProcCache tiene un único argumento opcional: el ID del plan de ejecución que desea eliminar.

Puede encontrar el plan que desea eliminar usando sys.dm_exec_cached_plans, y luego puedes usarlo como

DBCC FREEPROCCACHE (0x0123456....);

solo encuentra el plan usando esta consulta y limpia el plan_handle

SELECT [text], cp.size_in_bytes, plan_handle
FROM sys.dm_exec_cached_plans AS cp
CROSS APPLY sys.dm_exec_sql_text(plan_handle)
WHERE cp.cacheobjtype = N'Compiled Plan'
AND cp.objtype = N'Adhoc'
AND cp.usecounts = 1
ORDER BY cp.size_in_bytes DESC;

DBCCFREEPROCCACHE(0x0600010069AB592540C10089000000000000000000000000)

Plan_handle

Aquí hay otra forma de eliminar el plan de la caché solo para un procedimiento almacenado:

DECLARE @PlanHandle VARBINARY(64);

SELECT  @PlanHandle = deps.plan_handle
FROM    sys.dm_exec_procedure_stats AS deps
WHERE   deps.object_id = OBJECT_ID('dbo.SomeProcedureName') AND deps.database_id = DB_ID();

IF @PlanHandle IS NOT NULL
    BEGIN
        DBCC FREEPROCCACHE(@PlanHandle);
    END
GO
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *