пятница, 8 июля 2016 г.

Partitioning в Tibero 6

Секционирование (partitioning) – это разделение одной логической таблицы или индекса на несколько физических разделов-секций на уровне базы данных. При этом для пользователей секционированная таблица остается обычной, и нет необходимости переписывать SQL-запросы.

При секционировании уменьшается время, требующееся для выполнения большинства операций. Сокращение времени обеспечивается применением этих операций «к частям, а не к целому» и увеличением производительности вследствие параллельного выполнения операций.

Секционирование недоступно для младших редакций и входит в редакцию Tibero Enterprise Edition без дополнительной оплаты.

Доступны следующие стратегии секционирования:
  • Range Partitioning – секционирование по последовательным диапазонам значений. Используется чаще всего. Например, для исторических данных, можно сделать секционирование по дате.
Синтаксис SQL при работе с секционированными таблицами.
  • Interval Partitioning – секционирование по интервалу. Автоматическое добавление новых секций при Range Partitioning.
Пример секционирования по интервалу.
  • List Partitioning – секционирование по неупорядоченному списку значений. 
  • Hash Partitioning – хеш-секционирование. Например, используется для неисторических, уникальных или почти уникальных данных.
  • REF Partitioning  – секционирование по ссылке. Связанные таблицы, ключ секционирования дочерней таблицы наследуется через FK-PK.
  • Virtual Column Based Partitioning – секционирование по виртуальному столбцу. Ключ секционирования определяется выражением, с использованием существующих столбцов таблицы.
  • System Partitioning – правила разбиения на секции определяет администратор БД.
Также доступны смешанные стратегии: когда сначала идёт Range (или Interval) Partitioning , а потом - List или Hash.

Для индексов доступны local partitioning (для секционированных таблиц, с использованием той же стратегии) и global partitioning (для произвольных таблиц).

Информацию о секционированных объектах можно посмотреть через представления: например, DBA_PART_TABLES, DBA_PART_INDEXES. Предварительно, собрав статистику с помощью пакета DBMS_STATS. Вообщем, всё так же, как и в Oracle.

Комментариев нет:

Отправить комментарий