DBCC FREESYSTEMCACHE (Transact-SQL)

Libera todas las entradas de caché no utilizadas de todas las cachés. El SQL Server Database Engine (Motor de base de datos de SQL Server) limpia automáticamente y en segundo plano todas las entradas de caché no utilizadas para permitir que haya memoria disponible para las entradas actuales. Sin embargo, puede utilizar este comando para quitar de forma manual las entradas no usadas de todas las memorias caché o de la memoria caché especificada de un grupo del regulador de recursos.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

DBCC FREESYSTEMCACHE 
        ( 'ALL' [, pool_name ] ) 
    [WITH 
    { [ MARK_IN_USE_FOR_REMOVAL ] , [ NO_INFOMSGS ]  }
    ]

Argumentos

  • ( 'ALL' [, pool_name ] )
    ALL especifica todas las memorias caché compatibles.

    pool_name especifica una memoria caché de conjunto del regulador de recursos. Solo se liberarán las entradas asociadas a este grupo.

  • MARK_IN_USE_FOR_REMOVAL
    Libera asincrónicamente las entradas utilizadas actualmente de sus respectivas cachés después de que dejan de utilizarse. No se verán afectadas las nuevas entradas creadas en la memoria caché después de ejecutar DBCC FREESYSTEMCACHE WITH MARK_IN_USE_FOR_REMOVAL.

  • NO_INFOMSGS
    Suprime todos los mensajes de información.

Conjuntos de resultados

DBCC FREESYSTEMCACHE devuelve:

"La ejecución de DBCC se ha completado. Si DBCC imprime algún mensaje de error, póngase en contacto con su administrador del sistema."

Comentarios

Al ejecutar DBCC FREESYSTEMCACHE se borra la memoria caché del plan para la instancia de SQL Server. Al borrar la caché del plan, se provoca una nueva compilación de todos los planes de ejecución posteriores y puede ocasionar una disminución repentina y temporal del rendimiento de las consultas. Para cada almacén de memoria caché borrado en la memoria caché del plan, el registro de errores de SQL Server contendrá el mensaje informativo siguiente: "SQL Server ha detectado %d instancias de vaciado del almacén de caché '%s' (parte de la memoria caché del plan) debido a operaciones 'DBCC FREEPROCCACHE' o 'DBCC FREESYSTEMCACHE". Este mensaje se registra cada cinco minutos siempre que se vacíe la memoria caché dentro de ese intervalo de tiempo.

Permisos

Requiere el permiso ALTER SERVER STATE en el servidor.

Ejemplos

A. Liberar las entradas no utilizadas de una memoria caché de conjunto de regulador de recursos

En el ejemplo siguiente se muestra cómo limpiar memorias caché que están dedicadas a un grupo de recursos de servidor del regulador de recursos especificado.

-- Clean all the caches with entries specific to the resource pool named "default".
DBCC FREESYSTEMCACHE ('ALL','default');

B. Liberar las entradas de sus memorias caché respectivas una vez que dejan de ser utilizadas

En el ejemplo siguiente se utiliza la cláusula MARK_IN_USE_FOR_REMOVAL para liberar las entradas de todas las memorias caché actuales una vez que las entradas dejan de ser utilizadas.

DBCC FREESYSTEMCACHE ('ALL') WITH MARK_IN_USE_FOR_REMOVAL;