DBCC FREESYSTEMCACHE (Transact-SQL)

Se aplica a: síSQL Server (todas las versiones admitidas) SíAzure SQL Database SíInstancia administrada de Azure SQL

Libera todas las entradas de caché no utilizadas de todas las memorias caché. El 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 usar este comando para quitar de forma manual las entradas no usadas de todas las cachés o de la caché especificada de un grupo de Resource Governor.

Icono de vínculo de tema Convenciones de sintaxis de Transact-SQL

Sintaxis

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

Nota

Para ver la sintaxis de Transact-SQL para SQL Server 2014 y versiones anteriores, consulte Versiones anteriores de la documentación.

Argumentos

( 'ALL' [,pool_name ] )
ALL especifica todas las memorias caché compatibles.
pool_name especifica una caché del grupo regulador de recursos. Solo se liberarán las entradas asociadas a este grupo. Para enumerar los nombres de grupo disponibles, ejecute:

SELECT name FROM sys.dm_os_memory_clerks

La mayoría de las cachés se pueden liberar individualmente con este comando, aunque no todas.

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

NO_INFOMSGS
Suprime todos los mensajes de información.

Observaciones

Al ejecutar DBCC FREESYSTEMCACHE se borra la caché de planes para la instancia de SQL Server. Al borrar la caché de planes, se provoca una nueva compilación de todos los planes de ejecución próximos, lo que puede dar lugar a una reducción repentina y temporal del rendimiento de las consultas. Para cada almacén de caché borrado de la caché de planes, el registro de errores de SQL Server contiene el siguiente mensaje informativo:

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.

Este mensaje se registra cada cinco minutos siempre que se vacíe la memoria caché dentro de ese intervalo de tiempo.

Conjuntos de resultados

DBCC FREESYSTEMCACHE devuelve: "Ejecución de DBCC completada. Si DBCC imprime algún mensaje de error, póngase en contacto con su administrador del sistema."

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;  

Consulte también

DBCC (Transact-SQL)
DBCC FREEPROCCACHE (Transact-SQL)
DBCC FREESESSIONCACHE (Transact-SQL)
Regulador de recursos