В моей базе данных есть несколько таблиц, которые не должны кэшироваться.
Как мне сказать SQL Server не кэшировать страницы таблицы или как удалить одну таблицу из кэша?
Сбросить весь кеш не вариант.
Я использую SQL Server 2008 и SQL Server 2008 R2.
sql-server
sql-server-2008
sql-server-2008-r2
Каталин Адлер
источник
источник
Ответы:
Там нет никакого способа сделать это.
DBCC DROPCLEANBUFFERS
не принимает никаких параметров для конкретной базы данных или объекта. Внутренне SQL Server может делать это на уровне базы данных, однако, когда база данныхAUTO_CLOSE
d, все соответствующие страницы удаляются из буферного кэша.Кроме того, внутренне SQL Server может помечать определенные страницы так, что они будут первыми, которые будут выгружены ленивым писателем. Это используется DMV, например, для того,
sys.dm_db_index_physical_stats
чтобы избежать сброса пула буферов, как указано в этой статье, но эта функциональность нам никоим образом не предоставляется (хотя может быть полезно иметь возможность указать то же самое при выполнении однократного сканирования). большого стола например).источник
Вы не можете указать, что определенные таблицы не должны кэшироваться. Что заставляет вас думать, что вам не нужны таблицы в кеше?
SQL Server выполняет ВСЕ свои обычные операции в пуле буферов, поэтому, если вы сможете указать SQL Server не загружать таблицу в кэш, эта таблица не будет доступна для любых обычных операций DML.
источник