Comandos DBCC FREESESSIONCACHE y FREESYSTEMCACHE
Ya se ha
indicado, cuando comencé con los Comandos DBCC, sobre los comandos misceláneos,
que existen estos dos comandos que nos ayudan a la limpieza del espacio
denominado cache, uno para el relacionado con las conexiones generadas por las
consultas distribuidas y otro para liberar toda el espacio de cache que no se
esté utilizando en el sistema.
DBCC FREESESSIONCACHE
Este
comando lleva a cabo el vaciado de la caché de conexión de consulta distribuida
que se utiliza por las consultas distribuidas en una instancia de Microsoft SQL
Server. Pero, ¿qué significa esto? Es importante indicar que muchas veces se
llevan a cabo consultas que implican la existencia de datos en diferentes
servidores y esto genera un espacio de cache para mantener la conexión de
datos, en este sentido, este comando solo es útil cuando se llevan a cabo consultas
distribuidas, ya que se liberará el espacio ocupado por la realización de este
tipo de consultas.
La sintaxis
que se usa para este comando es:
DBCC FREESESSIONCACHE;
Este
comando libera el cache de consultas distribuidas utilizado en la base de datos
actual.
Existe un
argumento opcional que puede ser utilizado con el comando, éste es:
WITH NO_INFOMSGS
|
Suprime todos los
mensajes informativos.
|
DBCC FREESYSTEMCACHE
Ya se ha
indicado que éste comando libera todas las entradas de caché no utilizadas de
todas las memorias caché. Esto es, el Motor de base de datos de Microsoft SQL Server
limpia de forma automática y en segundo plano todas las entradas de caché no
utilizadas, lo que permite que haya memoria disponible para las entradas
actuales. No obstante, es posible utilizar este comando para liberar de forma
manual las entradas no usadas de todas las memorias caché o de una memoria
caché especifica de un grupo del regulador de recursos.
La sintaxis
que se usa más a menudo para este comando es:
DBCC
FREESYSTEMCACHE ('ALL');
En este
caso se indica que se libere el espacio de cache utilizado por todas las
memorias compatibles. Existen algunos argumentos opcionales que puede ser utilizado con el comando, los cuales son:
Pool_name
|
Especifica una cache
de grupo del regulador de recursos, de tal forma que solo se liberaran las
entradas asociadas a este grupo, se utiliza en conjunto con ‘ALL’.
|
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 el comando.
|
WITH NO_INFOMSGS
|
Suprime todos los
mensajes informativos.
|
Ejemplos de DBCC FREESYSTEMCACHE
Mostraré
algunos ejemplos de uso de este comando:
DBCC FREESYSTEMCACHE
('ALL', default);
Se limpiará
la memoria caché que está dedicada a un grupo de recursos de servidor del
regulador de recursos denominado default.
DBCC
FREESYSTEMCACHE ('ALL') WITH MARK_IN_USE_FOR_REMOVAL;
En este
ejemplo, 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 dejen de
ser utilizadas.Comentarios
Si bien, el
uso del comando DBCC FREESESSIONCACHE puede ser uno de los menos utilizados,
conviene tenerlo presente cuando se trabaja con consultas distribuidas. No hay
nada más que señalar con respecto a este comando.
Ahora bien,
el uso del comando DBCC FREESYSTEMCACHE al borrar la memoria caché de planes,
se provoca que se lleve a cabo la 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 uno de los almacenes de caché que
se ha borrado de la caché del plan, el registro de Microsoft SQL Server contendrá el
siguiente mensaje informativo: " SQL Server ha detectado %d instancias de
vaciado del almacén de caché '%s' (parte de la caché del plan) debido a
operaciones 'DBCC FREEPROCCACHE' o 'DBCC FREESYSTEMCACHE'".
Se
recomienda el uso de estos comandos con discreción, ya que el uso continuo
causara la degradación del rendimiento de las consultas, dado que cada vez que
se libera el espacio de cache, se llevara a cabo la re-compilación de las
consultas.
No hay comentarios.:
Publicar un comentario