Oracle Database Tuning Pack
Oracle Tuning Pack (OTP) - это набор модулей, встроенных в ядро Oracle Database и Oracle Enterprise Manager для автоматической настройки и оптимизации приложений, работающих с базами данных Oracle. OTP автоматизирует процесс настройки SQL предложений и процесс реорганизации объектов базы данных с целью увеличения производительности системы. Основные компоненты OTP - SQL Tuning Advisor, SQL Access Advisor, Object Reorganization Wizard.
СУБД Oracle способна сама автоматически определять неэффективные ресурсоёмкие SQL-предложения, используя ADDM и AWR. Они могут быть проанализированы с помощью SQL Tuning Advisor (STA). STA использует специальный режим оптимизатора запросов Automatic Tuning Optimizer. В этом режиме оптимизатор запросов выполняет дополнительные действия по оптимизации SQL-запроса. Например, ATO может частично выполнять оптимизируемый запрос, чтобы проверить правильность своей оценки стоимости выполнения запроса. По результатам работы ATO STA может сделать следующие рекомендации для каждого конкретного SQL-запроса:
- Пересобрать статистику для объектов, участвующих в SQL-запросе, если она устарела или отсутствует.
- Использовать SQL-профиль. SQL профиль хранится в словаре базы данных и содержит дополнительные инструкции для оптимизатора, как строить наилучший план выполнения запроса. Например, STA, основываясь на предыдущей истории выполнения запроса, может записать в SQL-профиль указание оптимизатору строить план, при котором будут максимально быстро возвращаться первые строки результата запроса вместо того, чтобы стремиться минимизировать общее время выполнения запроса. Огромной ценностью SQL профилей является то, что они позволяют настраивать SQL-предложение, не меняя синтаксиса самого SQL-предложения, т.е. не меняя кода приложения.
- Построить индексы. STA автоматически определяет, какие дополнительные индексы могут ускорить выполнение SQL-запроса.
- Переписать SQL-предложение. STA выявляет возможные типичные синтаксические ошибки в SQL-запросе, ведущие к неэффективному выполнению запроса, и предлагает их исправить. Например, STA может порекомендовать заменить в запросе условие NOT IN на NOT EXISTS.
Дополнительные индексы могут ускорить выполнение запросов, но замедляют операции по обновлению соответствующих таблиц, что может отразиться на производительности всего приложения. SQL Access Advisor (SAA) помогает решить эту проблему. SAA анализирует набор SQL-предложений, составляющих создаваемую приложением нагрузку, как единое целое и рекомендует создать дополнительные индексы и материальные представления или, наоборот, удалить лишние из них. SQL-предложения для SAA-анализа могут браться из кэша курсоров, из AWR или задаваться явно администратором. SAA умеет также выдавать рекомендации на основе гипотетической нагрузки для таблиц, связанных через первичные и вторичные ключи. Для каждой рекомендации SAA указывает в процентах выигрыш, который можно получить в результате её применения.
Object Reorganization Wizard (ORW) автоматизирует процесс реорганизации объектов базы. Реорганизация используется для перестройки сильно фрагментированных таблиц и индексов, для перемещения объектов в другое табличное пространство, для пересоздания объектов с новыми оптимальными параметрами хранения. Реорганизация объектов может производиться в оперативном и автономном режимах. ORW создает отчёт о планируемых изменениях и сценарий исполнения (скрипт). Это помогает администратору точно понять, на что в базе данных повлияет реорганизация, прежде чем начать её реальное осуществление.
|