Список ошибок Oracle, включая номера событий (Oracle events) на Unix/Linux платформах можно найти в файле $ORACLE_HOME/rdbms/mesg/oraus.msg.
218105.1 Introduction to ORACLE Diagnostic EVENTS
339956.1 How to Determine the Parameters and Events set in Another Session Using Oradebug – уже недоступен
Event Reference на сайте Julian Dyke
10046 event
«стандартный» Oracle SQL Trace, в зависимости от уровня может включать значения связанных переменных (binds) и информацию по статистике событий ожиданий (waits). «Уровни трейса (EVENT) 10046:
1 – стандартный уровень SQL_TRACE (Default)
4 – уровень 1 + трейс значений связанных переменных (binds)
8 – уровень 1 + трейс событий ожидания (waits)…
12 – уровень 1 + трейсы значений связанных переменных (binds) и событий ожидания (waits)«
Включить/выключить стандартные трейс в текущей сессии
SQL> alter session set SQL_TRACE= TRUE|FALSE;
или с указанием уровня трейса
SQL> alter session set events '10046 trace name context forever , level 12'; SQL> alter session set events '10046 trace name context off';
Включить/выключить трейс в любой сессии, используя пакет DBMS_SUPPORT:
SQL> exec sys.dbms_support.start_trace_in_session( &sid, &serial, waits=>TRUE, binds=>TRUE );
SQL> exec sys.dbms_support.stop_trace_in_session( &sid, &serial );
То же с использованием утилиты ORADEBUG:
определить сессию по orapid
SQL> oradebug setorapid N
или по ospid
SQL> oradebug setospid N
включить/выключить трейс
SQL> oradebug event 10046 trace name context forever [, level L]
SQL> oradebug event 10046 trace name context off
1058210.6 How to Enable SQL_TRACE for Another Session or in MTS Using Oradebug
Включить/выключить трейс на уровне системы:
SQL> alter system set events ‘10046 trace name context forever[, level L]‘;
SQL> alter system set events ‘10046 trace name context off’;
или с использованием параметра системы:
event=’10046 trace name context forever[, level L]‘
Выключить все события для всех инстансов бд:
SQL> ALTER SYSTEM RESET EVENT SCOPE=SPFILE SID=’*’ ;
160178.1 How to set EVENTS in the SPFILE
Начиная с Oracle 10.2 можно определить наличие и уровень SQL_TRACE для сессии по значениям SQL_TRACE, SQL_TRACE_WAITS, SQL_TRACE_BINDS в V$SESSION
Интерпретация результатов трейса 10046
39817.1 Interpreting Raw SQL_TRACE and DBMS_SUPPORT.START_TRACE output – описывается структура информации необработанного (raw) трейс файла
32951.1 Tkprof Interpretation – стандартно поставляемая с Oracle утилита tkprof для обработки и анализа содержимого трейс файлов
224270.1 TRCANLZR «…reads a raw SQL Trace generated by standard SQL Trace or by EVENT 10046 (Level 4, 8 or 12), and generates a comprehensive HTML report with performance related details: time summary, call summary (parse, execute, fetch), identification of top SQL, row source plan, explain plan, CBO statistics, wait events, values of bind variables, I/O summary per schema object, latches, hot blocks, etc.» . Инструмент реализован в виде схемы БД, считывает трейс файл 10046 и генертрует подробный отчёт в формате HTML. Во время обработки данные загружаются в global temporary table и доступны из SQL, например, для создания на основе активности сессии тестового повторного сценария (Oracle session activity Replay).
10053 event / 10132 event
Cost-Based Optimizer trace
SQL> alter session set events ‘10053 trace name context forever’;
SQL> alter session set events ‘10132 trace name context forever, level 12′; – облегчённый вариант предыдущего события(?), без математики
Wolfgang Breitling A LOOK UNDER THE HOOD OF CBO: THE 10053 EVENT
cursortrace event
SQL> alter system set events ‘immediate trace name cursortrace level 577, address hash_value’;
недокументированое событие, упоминается в «296377.1 Handling and resolving unshared cursors/large version_counts» для исследования причин повторного неиспользования курсоров. Рекомендуется к использованию только по рекомендации Oracle support.
drop_segments event
SQL> alter session set events ‘immediate trace name DROP_SEGMENTS level TS#+1′;
Событие для удаления временных сегментов, которые по каким-либо причинам не были удалены SMON. На практике бывает необходимо для очистки временных сегментов, оставшихся от прерванной операции создания индекса, например. Наличие таких «неочищенных» SMON’ом сегментов затрудняет создание новых объектов в ТС.
61997.1 SMON – Temporary Segment Cleanup and Free Space Coalescing
47400.1 EVENT: DROP_SEGMENTS – Forcing cleanup of TEMPORARY segments
10949 event
# «Disable autotune direct path read for full table scan»
# // *Cause:
# // *Action: Disable autotune direct path read for serial full table scan.
# //
Отключение автопереключения механизмов: scattered read (чтение данных через buffer cache) <> direct path read:
SQL> alter session set events ‘10949 trace name context forever, level 1′;
ORADEBUG утилита
ORADEBUG – UNDOCUMENTED ORACLE UTILITY – подробное описание некоторых возможностей от Miladin Modrakovic’а.
1 Ответ в “ORACLE EVENTS – дампы, трейсы и сигналы”