Таблица, оптимизированная для памяти — частичная загрузка данных в память

Возможно ли, чтобы оптимизированная для памяти таблица на сервере SQL содержала часть своих данных в памяти, а остальные — на диске?

У меня есть требование загрузить данные за последние 3 месяца в память, а остальная часть на самом деле не требуется, чтобы быть в памяти, потому что она не будет запрашиваться.

Есть ли способ сделать это с оптимизированными для памяти таблицами? Если нет, есть ли альтернативный способ сделать это?


person SirG    schedule 21.02.2017    source источник
comment
Рассматривали ли вы разбиение таблицы на разделы, часто используемые разделы будут находиться в кэше данных, не требуя таблиц, оптимизированных для памяти.   -  person Steve Ford    schedule 21.02.2017
comment
@SteveFord Часто используемые разделы останутся в кеше только в том случае, если они будут удалены из-за нехватки памяти. Больше нет никакой гарантии, что что-либо останется в горячих буферах, так как DBCC PINTABLE был удален. Единственный вариант, дающий гарантию, — таблицы, оптимизированные для памяти. На данный момент общепринятой является стратегия, при которой горячие данные находятся в таблицах, оптимизированных для памяти, а так называемые «холодные» данные находятся на диске. Представление UNION ALL, похожее на то, что было у нас когда-то с «разделенными представлениями», связывает данные вместе. Логика приложения также может это сделать.   -  person Pittsburgh DBA    schedule 19.02.2018


Ответы (2)


Используйте представление для объединения таблицы в памяти со стандартной таблицей (разделенное представление). Запустите процесс обслуживания для перемещения данных из таблицы в памяти в стандартную таблицу по мере необходимости.

Вы можете добавить контрольные ограничения в стандартную таблицу, чтобы исключить ее из запроса, если эти данные не будут затронуты.

person Wes H    schedule 21.02.2017
comment
Этот ответ - путь. docs.microsoft.com/en-us/sql/relational-databases/ - person Pittsburgh DBA; 19.02.2018

База данных может иметь несколько таблиц на диске и несколько в памяти, но невозможно иметь некоторые табличные данные на диске и некоторые данные в памяти.

У меня есть требование загрузить данные за последние 3 месяца в память, а остальная часть на самом деле не требуется, чтобы быть в памяти, потому что она не будет запрашиваться

почему бы не архивировать таблицу регулярно, чтобы она сохраняла данные только за три месяца и не оптимизировала ее для использования в памяти.

person TheGameiswar    schedule 21.02.2017