Published on

January 3, 2017

Оптимизация загрузки таблиц фактов в SQL Server

Таблицы фактов играют важную роль в среде хранилищ данных, поскольку они фиксируют данные на самом низком уровне, необходимом для отчетности и аналитики. Однако загрузка этих таблиц может быть сложной задачей из-за их большого размера, который может потреблять значительное количество памяти и циклов ЦП, влияя на производительность запросов по требованию. В этой статье мы рассмотрим различные подходы к оптимизации процесса загрузки таблиц фактов в SQL Server.

Смена схемы

Смена схемы является эффективным подходом для небольших таблиц фактов, которые загружаются с нуля каждый раз. Этот метод включает использование трех схем – dbo (по умолчанию), swap и shadow. Сначала в схеме shadow создается пустая копия таблицы. Таблица в схеме dbo используется приложениями, работающими с данными. Процесс загрузки начинается с загрузки таблицы в схему shadow. После загрузки таблицы инициируется смена схемы, переносящая таблицу из схемы dbo в схему swap. Затем таблица из схемы shadow меняется с таблицей в схеме dbo. Наконец, таблица из схемы swap меняется с таблицей в схеме shadow, а таблица в схеме shadow очищается.

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

Переключение разделов – полная перезагрузка раздела

Для достаточно больших таблиц фактов, которые загружаются инкрементально, переключение разделов может быть подходящим подходом. Аналогично смене схемы, в схемах shadow и swap создается пустая копия таблицы. Процесс начинается с определения разделов, которые нужно обновить. В таблицу в схеме shadow загружаются только данные, относящиеся к этим разделам. После загрузки данных соответствующие разделы переключаются из схемы dbo в схему swap, а затем из схемы shadow в схему dbo. Наконец, данные в таблице swap очищаются.

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

Переключение разделов – инкрементальная загрузка раздела

Для очень больших таблиц фактов с достаточно большими разделами используется подход инкрементальной загрузки раздела. В этом методе в схеме shadow создается пустая копия таблицы. Процесс начинается с определения разделов, которые нужно обновить с дополнительными строками. Затем эти разделы переключаются из таблицы в схеме dbo в схему shadow. В таблицу в схеме shadow загружаются инкрементальные данные, а затем разделы снова переключаются из схемы shadow в схему dbo.

Хотя этот подход может привести к относительно большому времени простоя для таблицы, он является быстрым, поскольку загружаются только новые данные на основе существующих данных в схеме shadow. Этот подход подходит для очень больших таблиц фактов, где перезагрузка раздела невозможна.

Реализуя эти методы оптимизации, вы можете минимизировать время простоя и окно загрузки таблиц фактов в вашей среде SQL Server. Это гарантирует, что данные всегда доступны для использования в рабочие часы, минимизируя влияние на приложения, работающие с данными, и обеспечивая бесперебойную работу бизнеса.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.