Базы данных Oracle - статьи


Трассировка операторов


Утилита SQL*Plus позволяет автоматически получать отчет о способе выполнения оператора, выбранном оптимизатором SQL, а также статистическую информацию о выполнении. Этот отчет выдается после успешного выполнения операторов SELECT, INSERT, UPDATE и DELETE. Такой отчет полезен для контроля и настройки производительности этих операторов.

Для управления данным отчетом используется команда SET AUTOTRACE. Эта команда имеет пять опций:

OFF

Отчет не выдается. Это стандартный режим работы SQL*Plus.

ON EXPLAIN

Выдается только выбранный оптимизатором план выполнения оператора.

ON STATISTICS

Выдается только статистическая информация о выполнении оператора.

ON

Выдается план выполнения запроса и статистическая информация о выполнении оператора.

TRACEONLY

Выдается отчет о статистике, но не выдаются результаты выполнения оператора. Используется для трассировки запросов, возвращающих большие объемы данных.

Для использования этой возможности SQL*Plus необходимо создать в схеме пользователя таблицу PLAN_TABLE и получить роль PLUSTRACE (предоставить ее может только DBA). Выполним следующие действия:

SQL> set autotrace on

SP2-0613: Невозможно проверить формат или существование PLAN_TABLE SP2-0611: Ошибка разблокирования EXPLAIN report SP2-0618: Невозможно найти Идентификатор Сеанса. Проверьте, разрешена ли роль PLUSTRACE SP2-0611: Ошибка разблокирования STATISTICS report

Как видите, по умолчанию эта возможность не поддерживается. Создадим таблицу с помощью сценария $ORACLE_HOME/rdbs/admin/utlxplan.sql:

SQL> @g:\oracle\ora81\rdbms\admin\utlxplan

Таблица создана.

Затем создадим роль PLUSTRACE, дадим ей необходимые привилегии, а затем предоставим ее роли DBA (с помощью сценария $ORACLE_HOME/sqlplus/admin/plustrce.sql):

SQL> connect system/manager as sysdba

Соединено. SQL> @g:\oracle\ora81\sqlplus\admin\plustrce

SQL> SQL> drop role plustrace;

drop role plustrace * ошибка в строке 1: ORA-01919: роль 'PLUSTRACE' не существует

SQL> create role plustrace;




Начало  Назад  Вперед