Tsql теория > Секционирование, как способ обеспечения высокой доступности данных
22.04.2013 17:38:42
Наиболее часто встречающиеся слова в статье:
[PARTITION] [производительность] [таблицы] [которые] [обновляем] [таблицу] [tblФПП_ОбъемПродаж] [Секционирование] [partitions] [основных]
Статья:
Секционирование (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