Версия для печати темы

Нажмите сюда для просмотра этой темы в оригинальном формате

WinCity.Ru _ Oracle _ трассировка сессий

Автор: Админ Вторник, 27 Сентября 2005, 8:08

Возможность исчерпывающей трассировки сессий можно назвать одним из самых прекрасных свойств БД Oracle.
По результатам трассировки (*.trc файлам) не всегда просто сделать вывод о причине проблемы, но почти всегда рано или подзно можно понять в чём корень зла.
Как же включить трассировку сессии? Существует масса (больше десяти) способов сделать это. На наш взгляд большинство из них представляют просто праздный интерес. Достаточно знать только пару способов:

<ul><li>Если Вы собираетесь трассировать свою сессию, то выполняйте команду:

SQL
alter session set events '10046 trace name context forever, level N';

Цифра в level указывает на уровень трассировки.
level 1 -- в trace файл пишется статистика вида ***, APPNAME, PARSING IN CURSOR, PARSE ERROR, PARSE, EXEC, FETCH, UNMAP, SORT UNMAP, ERROR, STAT и XCTEND
level 4 -- то же, что и в level 1 плюс BINDS секции.
level 8 -- то же, что и в level 1 плюс WAIT строки.
level 12 -- level 1 плюс level 4 плюс level 8.
Выключается трассировка своей сессии так:
SQL
alter session set events '10046 trace name context off';

</li></ul>

<ul><li>Если Вы собираетесь трассировать чужую сессию, то вызывайте процедуру set_ev из пакета dbms_system:
SQL
exec dbms_system.set_ev(sid,serial,10046,N,'');

где sid, serial -- это понятно что, а N -- требуемый level.
Выключается трассировка чужой сессии так:
SQL
exec dbms_system.set_ev(sid,serial,10046,0,'');
</li>
</ul>
<p align="right"><small>Источник: <a href="http://www.oracledba.ru" target=_new>oracledba.ru</a></small></p>

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)