Генерирование планов обоснования

Оценить
(0 голоса)

Перед извлечением данных в ответ на некоторый запрос, оптимизатор БД определяет, как лучше всего обратиться к этим данным. На практике, и в особенности для запросов DSS, часто существует более одного способа, между которыми оптимизатор может выбирать (например, либо извлекать данные с использованием индекса, либо извлекать их непосредственно из основной таблицы). Последовательность шагов, которую выбирает оптимизатор, называется query execution plan (планом выполнения запроса), или explain plan (планом обоснования); роль оптимизатора БД подробно обсуждалась в главе 8.

В идеальном мире оптимизатор всегда бы выбирал оптимальный план. К сожалению, реальный мир редко бывает столь однозначным. И потому, учитывая, что план выполнения запроса является очень важным, особенно для производительности в средах DSS, часто бывает необходимо предоставить оптимизатору некоторые подсказки, которые могут быть включены в операторы SQL.

Как уже отмечалось ранее, приложения и вопросы настройки операторов SQL выходят за рамки настоящей книги. Тем не менее, иногда полезно знать, как сгенерировать план выполнения для оператора SQL.

Начиная с Огас1е7.3, генерирование плана обоснования из sqlplus столь же просто как запуск команды set autotrace on перед исполнением данного запроса. Обратите внимание на то, что если таблица plan_table еще не создана, необходимо будет сначала выполнить сценарий $ORACLE_HOME/rdbms/admin/utlxplan.sql:

Планы обоснования также могут быть сгенерированы с использованием сценария utlxplan. Этот метод, который также работает с более ранними версиями Oracle, иллюстрируется далее. Как и в предшествующем случае, если таблица plan_table еще не создана, необходимо будет сначала выполнить сценарий utlxplan.sql, что и показано.

Обратите внимание на то, что первый оператор, который запускается в сценарии utlxplan, должен быть выполнен только однократно; этот оператор создает таблицу PLAN_TABLE.

В Oracle9i было введено новое представление v$sql_plan, которое обеспечивает доступ к планам выполнения недавно выполненных указателей. Предоставляемая информация аналогична той, что генерируется с помощью оператора explain plan. В отличие от оператора explain plan, который показывает теоретический план, представление v$sql_plan отображает актуальный план, который был использован.

Расчет частоты успешных обращений к буферному кэшу
Прогнозирование частоты успешных обращений к кэшу
Мониторинг СУБД Oracle с использованием utlbstat/utlestat
Библиотечный кэш
Подключения пользователей

Добавить комментарий


Защитный код
Обновить