Что такое OpenEdge Table Partitioning?
Табличное секционирование в OpenEdge (также известное как горизонтальное табличное секционирование) – это функция СУБД OpenEdge, которая позволяет администратору разделить записи очень большой таблицы на небольшие части, называемые секциями и в дальнейшем манипулировать ими индивидуально. Логически для приложения такая таблица по-прежнему представляется единым целым. Физически она размещена в нескольких частях (секциях) базы данных.
Табличное секционирование интегрировано во все компоненты среды OpenEdge, в том числе в OpenEdge Explorer, OpenEdge Management, OpenEdge ABL, OpenEdge SQL и в OpenEdge-утилиты для командной строки.
Рассмотрим особенности и преимущества табличного секционирования.
Особенности OpenEdge Table Partitioning
Табличное секционирование в OpenEdge имеет следующие особенности:
- Табличное секционирование реализовано на уровне базы данных, что делает этот механизм прозрачным для приложений.
- Приложения, которые ранее работали с обычными таблицами, могут получить доступ к секционированной таблице без значительных, а в большинстве случаев, вообще без каких-либо изменений в коде.
- Каждая строка секционированной таблицы имеет одинаковый набор столбцов.
- Каждая строка размещается в своей секции и не может принадлежать нескольким секциям.
- Каждая секционированная таблица может состоять из нескольких секций.
- Каждая секция содержит подмножество строк таблицы.
- Каждая секция может быть размещена в собственной области хранения.
- Каждая секция может быть изменена и управляться независимо от других секции той же таблицы.
- Допускается создание до 32 765 секций для каждой таблицы.
- Индексы, связанные с секционированной таблицей, также могут быть секционированы. Такие индексы называются локальными.
- Каждая секция для локального индекса может быть размещена в собственной области хранения.
- Индексы, связанные с секцией таблицы можно перестраивать без оказания какого-либо влияния на индексы других секций таблицы.
- Вы можете формировать запросы к секционированной таблице с применением индекса или используя ключевое слово TABLE-SCAN.
- Вы можете использовать утилиты и инструменты базы данных для управления секциями.
Преимущества OpenEdge Table Partitioning
Табличное секционирование в OpenEdge предоставляет следующие преимущества:
Высокая доступность:
- Поскольку таблица содержит множество секций, то при недоступности одной секции остальные секции остаются по-прежнему доступны пользователям.
- Задачи обслуживания могут быть выполнены индивидуально для каждой секции – время простоя также сокращается.
Простота в администрировании:
- Вы можете выполнять Dump & Load, перемещение данных и создание или перестройку индексов значительно быстрее по сравнению с несекционированной большой таблицей.
- Административным задачам также требуется меньше системных ресурсов и ресурсов базы данных.
Лучшая производительность:
- OpenEdge RDBMS ускоряет доступ к секционированным данным по сравнению с доступом к единой большой таблице.
- Если CRUD-операции выполняются одновременно на нескольких секциях, то такие операции выполняются параллельно.
- Задачи обслуживания, такие как загрузка и удаление данных или создание и перестройка индексов, могут быть выполнены индивидуально и параллельно каждой секции, что улучшает производительность.
Если секции размещаются в разных областях хранения и на различных физических устройствах, то это снижает нагрузку на ввод-вывод, за счёт её перераспределения, что также способствует лучшей производительности.
Предпосылки для секционирования таблицы
Приведём основные характеристики для выбора таблиц, к которым будет применено секционирование:
- Таблица накапливает исторические данные и по мере добавления новых данных вам необходимо периодически архивировать устаревшие.
- Таблица содержит данные, которые периодически должны быть удалены или загружены, при этом операции удаления и загрузки требуют много времени и блокируют доступ пользователей к этим таблицам.
- Таблицу желательно перераспределить по различным областям хранения исходя из её данных
- Таблица периодически подвергается операциям по обслуживанию индексов и/или данных, что может приводить к ухудшению производительности, а также требовать значительных простоев базы.
- Таблица содержит данные, которые со временем перестают обновляться, и у вас есть способ идентифицировать такое подмножество данных.
- Таблица содержит специфический столбец или столбцы, по которым приложением наиболее часто выполняется выборка данных.
- Таблица содержит данные, которые можно сгруппировать по географическому или организационному признаку.
- Таблица может быть разделена с применением временных или числовых меток для формирования групп данных.
- Таблица содержит один или более столбцов, которые могут быть использованы для уникальной логической идентификации групп данных.
- Таблица содержит данные, доступ к которым наиболее часто осуществляется с применением TABLE-SCAN вместо применения конкретного индекса.
- Вы знаете, что со временем размер таблицы станет очень большим.