Создание и управление хранилищем для оптимизированных для памяти объектов

Применяется к:SQL ServerAzure SQL DatabaseAzure, управляемому экземпляру SQL Azure

Подсистема OLTP в памяти интегрирована в SQL Server, что позволяет использовать как оптимизированные для памяти таблицы, так и (традиционные) таблицы на основе дисков в одной базе данных. Тем не менее структуры хранилища оптимизированных для памяти таблиц и таблиц на диске отличаются.

Хранилище для таблиц на диске имеет следующие ключевые атрибуты:

  • Оно сопоставляется с файловой группой, которая содержит один или несколько файлов.

  • Каждый файл делится на экстенты по 8 страниц, а каждая страница имеет размер 8 КБ.

  • Экстент может совместно использоваться несколькими таблицами. Однако между выделенной страницей и таблицей или индексом устанавливается сопоставление "один к одному". Иными словами, страница не может содержать строки из двух или более таблиц или индексов.

  • Данные перемещаются в память (буферный пул) по мере необходимости. Измененные или созданные страницы асинхронно записываются на диск, создавая произвольные операции ввода-вывода.

Хранилище оптимизированных для памяти таблиц имеет следующие ключевые атрибуты:

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

  • Страницы отсутствуют, а данные сохраняются в виде строки.

  • Все изменения в оптимизированных для памяти таблицах сохраняются путем добавления в активные файлы. Операции чтения и записи в файлах выполняются последовательно.

  • Обновление реализуется как операция удаления с последующей вставкой. Удаленные строки не удаляются из хранилища немедленно. Они удаляются фоновым процессом с именем MERGE на основе политики, как описано в статье Устойчивость таблиц, оптимизированных для памяти.

  • В отличие от таблиц на дисках, хранилище для оптимизированных для памяти таблиц не сжимается. При переносе сжатой таблицы на диске (ROW или PAGE) в оптимизированную для памяти таблицу необходимо учитывать изменение размера.

  • Оптимизированные для памяти таблицы могут быть постоянными или временными. Хранилище нужно настраивать только для постоянных оптимизированных для памяти таблиц.

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

Подразделы в этом разделе:

См. также

In-Memory OLTP (оптимизация в памяти)