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

         

Трассировка - практические аспекты


Начиная с версии 6, СУБД Oracle официально предоставляет воможность создавать на сервере трассировочные файлы, содержащие детальную информацию о ходе выполнения SQL-операторов тем или иным серверным процессом. Самым простым способом начать трассировку является выполнение в сеансе SQL*Plus или в приложении следующего SQL-оператора:

alter session set sql_trace=true;

С этого момента информация о выполнении этого и всех последующих SQL-операторов записывается в так называемый трассировочный файл (trace file). Это текстовый файл определенного формата, создаваемый в каталоге, который задается параметром инициализации user_dump_dest. Формат имен трассировочных файлов зависит от версии сервера (например, в версии 9.2.0.1 для Windows он по умолчанию имеет вид SID_ora_PID.trc, где SID - идентификатор экземпляра, а PID - идентификатор серверного процесса Oracle, который создал этот трассировочный файл). Ниже представлено типичное начало трассировочного файла.

Листинг 1. Начало типичного трассировочного файла.

Dump file c:\oracle\admin\openxs\udump\openxs_ora_3532.trc Sun Apr 17 17:26:14 2005 ORACLE V9.2.0.1.0 - Production vsnsta=0 vsnsql=12 vsnxtr=3 Windows 2000 Version 5.1 Service Pack 2, CPU type 586 Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production With the Partitioning, OLAP and Oracle Data Mining options JServer Release 9.2.0.1.0 - Production Windows 2000 Version 5.1 Service Pack 2, CPU type 586 Instance name: openxs

Redo thread mounted by this instance: 1

Oracle process number: 12

Windows thread id: 3532, image: ORACLE.EXE

*** 2005-04-17 17:26:14.000 *** SESSION ID:(9.500) 2005-04-17 17:26:14.000 APPNAME mod='SQL*Plus' mh=3669949024 act='' ah=4029777240 ===================== PARSING IN CURSOR #1 len=34 dep=0 uid=59 oct=42 lid=59 tim=16127574484 hv=32029095 ad='12f4863c' alter session set sql_trace = true END OF STMT EXEC #1:c=0,e=39642,p=0,cr=0,cu=0,mis=1,r=0,dep=0,og=4,tim=16127528244 ...

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

alter session set sql_trace=false;

Размер создаваемого трассировочного файла ограничивается параметром инициализации max_dump_file_size (по умолчанию - 5 Мбайт). При достижении этого объема запись в файл прекращается. Для трассировки реальных приложений, выполняющих десятки SQL-операторов, значение этого параметра надо существенно увеличить.

Чтобы генерируемая трассировочная информация была действительно полезной, необходимо установить значение параметра инициализации timed_statistics = true. В противном случае, время выполнения различных этапов обработки SQL-оператора регистрироваться не будет. Обычно этот параметр устанавливается даже в производственных системах, поскольку пока трассировка не ведется, его влияние минимально, а если уж она ведется, то чем больше информации будет собрано - тем лучше.



Содержание раздела