Секционирование, как способ обеспечения высокой доступности данных

Tsql теория > Секционирование, как способ обеспечения высокой доступности данных
22.04.2013 17:38:42



Статья:

Секционирование (partitions) - один из основных инструментов для обеспечения оптимальной работы с большим объёмом данных за счёт горизонтального масштабирования. Повышается управляемость и производительность, как модификации данных, так и запросы на выборку.
Кроме того, можно повысить производительность, применяя блокировки на уровне секций, а не всей таблицы. Это может уменьшить количество конфликтов блокировок для таблицы.

Но не все обращают внимание на ещё одну уникальную возможность, которую предоставляет секционирование, а именно: обеспечение высокой доступности данных. Сокращает время восстановления после сбоев.

 

Например  есть таблица с 2  partition , в одной  хранится  данные которые не обновляем(например все кроме  последней  недели), а в другой  которые обновляем(за неделю) . Выгодно в ssis сначала загрузить в таблицу для  загрузки и преобразования данные, затем через таблицу по обмену  произвести подмену секций с уже основной  таблицей, с которой  работают пользователи - и это происходит очень быстро.

 ALTER TABLE dbo.tblФПП_ОбъемПродаж
SWITCH PARTITION 2 TO [dbo].[tblФПП_ОбъемПродаж_ПустаяДляОбмена] PARTITION 2
ALTER TABLE dbo.tblФПП_ОбъемПродаж_ДанныеДляЗагрузки
SWITCH PARTITION 2 TO dbo.tblФПП_ОбъемПродаж PARTITION 2