Создание и управление хранилищем для оптимизированных для памяти объектов
Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure
Подсистема OLTP в памяти интегрирована в SQL Server, что позволяет использовать как оптимизированные для памяти таблицы, так и (традиционные) таблицы на основе дисков в одной базе данных. Тем не менее структуры хранилища оптимизированных для памяти таблиц и таблиц на диске отличаются.
Хранилище для таблиц на диске имеет следующие ключевые атрибуты:
Оно сопоставляется с файловой группой, которая содержит один или несколько файлов.
Каждый файл делится на экстенты по 8 страниц, а каждая страница имеет размер 8 КБ.
Экстент может совместно использоваться несколькими таблицами. Однако между выделенной страницей и таблицей или индексом устанавливается сопоставление "один к одному". Иными словами, страница не может содержать строки из двух или более таблиц или индексов.
Данные перемещаются в память (буферный пул) по мере необходимости. Измененные или созданные страницы асинхронно записываются на диск, создавая произвольные операции ввода-вывода.
Хранилище оптимизированных для памяти таблиц имеет следующие ключевые атрибуты:
Все оптимизированные для памяти таблицы сопоставляются с оптимизированной для памяти файловой группой данных. Эта файловая группа использует синтаксис и семантику, аналогичную файловому потоку.
Страницы отсутствуют, а данные сохраняются в виде строки.
Все изменения в оптимизированных для памяти таблицах сохраняются путем добавления в активные файлы. Операции чтения и записи в файлах выполняются последовательно.
Обновление реализуется как операция удаления с последующей вставкой. Удаленные строки не удаляются из хранилища немедленно. Они удаляются фоновым процессом с именем MERGE на основе политики, как описано в статье Устойчивость таблиц, оптимизированных для памяти.
В отличие от таблиц на дисках, хранилище для оптимизированных для памяти таблиц не сжимается. При переносе сжатой таблицы на диске (ROW или PAGE) в оптимизированную для памяти таблицу необходимо учитывать изменение размера.
Оптимизированные для памяти таблицы могут быть постоянными или временными. Хранилище нужно настраивать только для постоянных оптимизированных для памяти таблиц.
В этом разделе рассматриваются пары файлов контрольных точек и другие вопросы хранения оптимизированных для памяти таблиц.
Подразделы в этом разделе:
Работа контрольной точки для оптимизированных для памяти таблиц
Определение устойчивости для оптимизированных для памяти объектов
Сравнение хранилища таблиц на диске с хранилищем таблиц оптимизированным для памяти