Eu tenho algumas tabelas no meu banco de dados que não devem ser armazenadas em cache.
Como digo ao SQL Server para não armazenar em cache as páginas de uma tabela ou como libero uma única tabela do cache?
Liberar todo o cache não é uma opção.
Estou usando o SQL Server 2008 e o SQL Server 2008 R2.
sql-server
sql-server-2008
sql-server-2008-r2
Catalin Adler
fonte
fonte
Respostas:
Não há como fazer isso.
DBCC DROPCLEANBUFFERS
não aceita nenhum parâmetro para um banco de dados ou objeto específico. Internamente, o SQL Server pode fazer isso no nível do banco de dados, no entanto, como quando um banco de dados éAUTO_CLOSE
removido, todas as páginas correspondentes são removidas do cache do buffer.Também internamente, o SQL Server pode marcar determinadas páginas, para que elas sejam as primeiras expulsas pelo gravador preguiçoso. Isso é usado pelas DMVs, como
sys.dm_db_index_physical_stats
para evitar liberar o buffer pool conforme mencionado neste artigo, mas essa funcionalidade não é exposta de forma alguma para nós (embora possa ser útil poder especificar o mesmo se estiver fazendo uma varredura única) de uma tabela grande, por exemplo).fonte
Você não pode especificar que tabelas específicas não sejam armazenadas em cache. O que faz você pensar que não deseja que as tabelas estejam em cache?
O SQL Server realiza TODAS as suas operações normais no buffer pool, portanto, se você pudesse dizer ao SQL Server para não carregar uma tabela no cache, essa tabela não estaria acessível para nenhuma operação DML normal.
fonte