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

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

Категории Дисковая таблица Долговечная, оптимизированная для памяти таблица
DDL Сведения о метаданных хранятся в системных таблицах в первичной файловой группе базы данных и доступны через представления каталога. Сведения о метаданных хранятся в системных таблицах в первичной файловой группе базы данных и доступны через представления каталога.
Структура Строки хранятся в страницах размером 8 КБ. Страница содержит только строки из одной таблицы. Строки хранятся в виде отдельных строк. Структура страницы не существует. Две последовательные строки в файле данных могут принадлежать к различным, оптимизированным для памяти таблицам.
Индексы Индексы хранятся в структуре страницы наподобие строк данных. Сохраняется только определение индекса (не строки индекса). Индексы сохраняются в памяти и создаются повторно, когда оптимизированная для памяти таблица загружается в память при перезапуске базы данных. Так как строки индекса не сохраняются, то для изменений индекса журнал не ведется.
Операция DML Сначала нужно найти страницу и загрузить ее буферный пул.

Insert
SQL Server вставляет строку на страницу учета порядка строк для кластеризованного индекса.

Удаление
SQL Server находит строку, удаленную на странице, и помечает ее.

Обновить
SQL Server находит строку на странице. Обновление для неключевых столбцов выполняется на месте. Обновление ключевого столбца выполняется с помощью операции удаления и вставки.

После завершения операции DML измененные страницы записываются на диск при фиксации политики буферного пула, контрольной точки или транзакции для операций с минимальным уровнем ведения журнала. И операции чтения, и операции записи на страницах приводят к ненужному вводу-выводу.
Поскольку данные оптимизированных для памяти таблиц находятся в памяти, операции DML осуществляются непосредственно в памяти. Существует фоновый поток, который считывает записи журнала для оптимизированных для памяти таблиц и сохраняет их в файлы данных и разностные файлы. При обновлении создается новая версия строки. Но обновление записывается в журнал как операция удаления с последующей вставкой.
Фрагментация данных Фрагменты обработки данных, из-за которых появляются частично заполненные страницы и логически последовательные страницы, которые располагаются на диске непоследовательно. Это уменьшает скорость доступа к данным и может потребовать дефрагментации данных. Оптимизированные для памяти данные не хранятся в страницах, поэтому фрагментации данных нет. Но при обновлении и удалении строк файлы данных и разностные файлы требуется сжимать. Этим занимается потоковый поток MERGE в соответствии с политикой слияния.

См. также

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