Производительность темпоральной таблицы, оптимизированной для памяти
Область применения: SQL Server 2016 (13.x) и более поздних версий База данных SQL Azure Управляемый экземпляр SQL Azure
В этой статье рассматриваются некоторые конкретные аспекты производительности при использовании системных оптимизированных для памяти временных таблиц.
При добавлении системного управления версиями в существующую не временную таблицу ожидается влияние производительности на операции обновления и удаления, так как таблица журнала обновляется автоматически.
Замечания, связанные с быстродействием
Каждое обновление и удаление записывается в внутреннюю таблицу журнала, оптимизированную для памяти. Вы можете столкнуться с непредвиденным потреблением памяти, если рабочая нагрузка использует эти две операции массово. Поэтому мы советуем вам учитывать следующие аспекты:
Не выполняйте массовые удаления из текущей таблицы на одном шаге. Рассмотрите возможность удаления данных в нескольких пакетах, при этом вручную вызывается очистка данных между sp_xtp_flush_temporal_history или в то время
SYSTEM_VERSIONING = OFF
.Не выполняйте массовые обновления таблиц одновременно, так как это может привести к потреблению памяти в два раза больше памяти, необходимой для обновления непорпоральной таблицы, оптимизированной для памяти. Это временное потребление памяти, так как задача очистки данных работает регулярно для поддержания потребления памяти внутренних промежуточных таблиц в проецируемых границах в устойчивом состоянии. Граница составляет 10 процентов потребления памяти текущей темпоральной таблицы. Рассмотрите возможность выполнения массовых обновлений в нескольких пакетах или в то время
SYSTEM_VERSIONING = OFF
как использование обновлений для задания значений по умолчанию для недавно добавленных столбцов.
Период активации задачи очистки данных не настраивается, но вы можете вручную выполнить sp_xtp_flush_temporal_history по мере необходимости.
Рекомендуется использовать кластеризованное хранилище columnstore в качестве варианта хранения для таблицы журнала на основе дисков, особенно если вы планируете выполнять запросы аналитики по историческим данным, которые используют агрегатные или оконные функции. В этом случае кластеризованный индекс columnstore является оптимальным выбором для таблицы журнала. Кластеризованные индексы columnstore обеспечивают хорошее сжатие данных и ведут себя в понятном для вставке способе, выравнивая способ создания данных журнала.
Связанный контент
- Системные темпоральные таблицы с оптимизированными для памяти таблицами
- Создание темпоральной таблицы, оптимизированной для памяти
- Работа с темпоральными таблицами, оптимизированными для памяти
- Мониторинг оптимизированных для памяти системных темпоральных таблиц
- Темпоральные таблицы
- Проверки согласованности систем темпоральных таблиц
- Управление хранением исторических данных в системных темпоральных таблицах
- Представления и функции темпоральных метаданных таблицы