Секционирование (partitioning) – это разделение одной логической таблицы или индекса на несколько физических разделов-секций на уровне базы данных. При этом для пользователей секционированная таблица остается обычной, и нет необходимости переписывать SQL-запросы.
При секционировании уменьшается время, требующееся для выполнения большинства операций. Сокращение времени обеспечивается применением этих операций «к частям, а не к целому» и увеличением производительности вследствие параллельного выполнения операций.
Секционирование недоступно для младших редакций и входит в редакцию Tibero Enterprise Edition без дополнительной оплаты.
Доступны следующие стратегии секционирования:
Информацию о секционированных объектах можно посмотреть через представления: например, DBA_PART_TABLES, DBA_PART_INDEXES. Предварительно, собрав статистику с помощью пакета DBMS_STATS. Вообщем, всё так же, как и в Oracle.
- 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 (для произвольных таблиц).


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