Tengo algunas tablas en mi base de datos que no deben almacenarse en caché.
¿Cómo le digo a SQL Server que no almacene en caché las páginas de una tabla o cómo elimino una sola tabla de la caché?
Vaciar todo el caché no es una opción.
Estoy usando SQL Server 2008 y SQL Server 2008 R2.
sql-server
sql-server-2008
sql-server-2008-r2
Catalin Adler
fuente
fuente
Respuestas:
No hay forma de hacer esto.
DBCC DROPCLEANBUFFERS
no acepta ningún parámetro para una base de datos u objeto específico. Internamente, SQL Server puede hacer esto a nivel de base de datos, sin embargo, como cuando se utiliza una base de datos,AUTO_CLOSE
todas las páginas correspondientes se eliminan de la memoria caché del búfer.También internamente, SQL Server puede marcar ciertas páginas de modo que sean las primeras expulsadas por el escritor perezoso. Esto es utilizado por los DMV como
sys.dm_db_index_physical_stats
para evitar vaciar el grupo de búferes como se menciona en este artículo, pero esta funcionalidad no está expuesta de ninguna manera para nosotros (aunque podría ser útil poder especificar lo mismo si se realiza un escaneo único) de una mesa grande, por ejemplo).fuente
No puede especificar que las tablas específicas no se deben almacenar en caché. ¿Qué te hace pensar que no quieres las tablas en caché?
SQL Server realiza TODAS sus operaciones normales en el grupo de búferes, por lo que si pudiera decirle a SQL Server que no cargue una tabla en la memoria caché, esa tabla no sería accesible para ninguna operación DML normal.
fuente