Поделиться через


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

Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure

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

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

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

  • Каждый файл делится на экстенты восьми страниц, и каждая страница составляет 8 килобайт (8 192 байта) в размере.

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

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

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

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

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

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

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

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

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

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

Статьи в этом разделе: