DBCC FREESYSTEMCACHE (Transact-SQL)
Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance
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.
Convenciones 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. Para enumerar los nombres de grupo disponibles, ejecute:
SELECT name FROM sys.dm_resource_governor_resource_pools;
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 que se ejecute DBCC FREESYSTEMCACHE WITH MARK_IN_USE_FOR_REMOVAL
, las nuevas entradas creadas en la cachéno se ven afectadas.
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 lo siguiente:
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Permisos
Requiere el permiso ALTER SERVER STATE en el servidor.
Ejemplos
A. Liberar las entradas no utilizadas de una memoria caché de conjunto de Resource Governor
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;