Oracle Magazine - Русское издание (Декабрь 2007)

Стивен Чан

Использование механизма секционирования в E-Business Suite
(Using Database Partitioning with the E-Business Suite, by Steven Chan)

Источник: http://blogs.oracle.com/schan/newsItems/departments/database/2006/09/06#a663, 06.09.2006 г.

Часто задают вопросы типа: "Можно ли использовать опцию секционирования базы данных <http://download-west.oracle.com/docs/cd/B19306_01/server.102/b14220/partconc.htm> в среде E-Business Suite?" Ответ на этот вопрос положителен: использование пользовательского (custom) секционирования полностью поддерживается в E-Business Suite. Более того, несколько модулей Oracle Applications используют секционирование в своих интересах, не требуя для этого дополнительной настройки.

Что означает выражение "полностью поддерживается"?

Если пользовательское секционирование приводит к аварийному завершению конкретного процесса или транзакции E-Business Suite, и это аварийное завершение вызвано стандартным кодом продукта Applications, то оно считается дефектом продукта, поскольку Oracle Applications является прозрачным для пользовательского секционирования. Группа Oracle Development выпускает исправления или указывает пути обхода всех заявленных проблем для стандартного кода продукта Applications.

Что такое “пользовательское секционирование”?

Пользовательское секционирование (Custom partitioning) применяется, если имеющаяся стандартная таблица продукта Applications не секционирована, и таблица переопределяется как секционированная:

  1. по диапазону, по списку значений ключа или по композитному (составному) методу; или же
  2. Схема и/или метод секционирования существующей таблицы стандартного продукта, которая уже секционирована (как часть стандартного продукта), изменяются по сравнению с теми, которые присутствовали в базовом продукте.

Примеры пользовательского секционирования

На пример, если надо секционировать таблицу OE_ORDER_LINES_ALL, которая в настоящее время не секционирована в стандартном продукте, то подобное действие и будет примером пользовательского секционирования.

Кроме того, если изменяется ключ или метод секционирования, используемые для существующей секционированной таблицы, например, изменяется ключ секционирования таблицы WF_ITEM_ACTIVITY_STATUSES, которая уже была секционирована по item_type, а затем разбита на подразделы по item_key, и это – пример пользовательского секционирования.

Секционирование стандартных приложений Apps сразу после их установки

Oracle Applications стандартно применяет секционирование в следующих модулях:

  • Advanced Planning and Scheduling [Расширенное планирование и составление графиков]
  • Payables (Trial Balances) [Документы к оплате (Пробные балансы)]
  • Projects Resources [Проектные Ресурсы]
  • Workflow [Технологический процесс]
  • Directory Services [Службы каталога]
  • Daily Business Intelligence [Ежедневный анализ производственной информации]
  • HR (Employee Directory) [HR (Каталог служащих)]
  • Engineering [Разработка]
  • и в других продуктах...

В тех случаях, когда Apps-таблица имеет естественный и логичный ключ секционирования и доступ к данным во время выполнения (стандартного продукта) в большей части основан на этом естественном ключе секционирования, Oracle Applications передает таблицу в виде секционированной таблицы, как часть стандартной установки.

Секционирование на основании функциональной реализации

У многих таблиц продукта E-Business Suite отсутствует естественный ключ секционирования, который можно применять всем пользователям, просто потому что распределение данных и пути доступа к ним чрезвычайно существенно зависят от функциональной реализации каждого пользователя. Однако имеется возможность логическиь разделить таблицы, основываясь на собственных требованиях.

Например, многие из наших пользователей Oracle Financials секционируют таблицу GL_BALANCES либо по столбцу period_name, либо по столбцу set_of_books_id в зависимости от своей реализации:

  • У некоторых пользователей имеется большое количество книг, для которых имеет смысл секционирование по ключу set_of_books_id
  • Другие пользователи используют единственный набор книг (или всего несколько наборов), для которых имеет смысл секционирование по ключу period_name.

Так как в большинство SQL-операторов во время выполнения GL включены фильтры period_name или set_of_books_id, эти столбцы являются логическим выбором для ключа секционирования.

Использование секционирования для увеличения производительности

Использование пользовательского секционирования может улучшить производительность и управляемость среды E-Business Suite, и многие пользователи уже увидели многочисленные выгоды собственного секционирования. Выбор оптимального метода и ключа секционирования требует исчерпывающего и тщательного анализа системы, включая пути доступа к важным таблицам. Примеры и рекомендации можно найти в презентации:

Тестирование и лицензирование

Очень важно, чтобы после внедрения пользовательского секционирования были тщательно протестированы затронутые Apps-модули, чтобы убедиться, что цели использования пользовательского секционирования – включая производительность и управляемость – были достигнуты.

И еще одно замечание в заключение: если вы реализуете пользовательское секционирование, то необходимо приобрести лицензию на использование опции секционирования базы данных. Работающий с вашей организацией сотрудник Oracle по связям с клиентами всегда будет для вас наилучшим источником знакомства с деталями лицензирования.

Дополнительные материалы

E-mail this page