Використання налагодження SQL, Інші СУБД, Бази даних, статті








Рекомендовано для:

  • Oracle Database 8i
  • Oracle Database 9i R1
  • Oracle Database 9i R2
  • Oracle Database 10g R1
  • Oracle Database 10g R2
  • Oracle Database 11g R1
 

У статті піде мова про різні способи включення налагодження SQL.
Включення налагодження для своєї сесії, виконується командою:


ALTER SESSION SET sql_trace=TRUE;

або


ALTER SESSION SET EVENTS “10046 trace name context forever, level <уровень_отладкі>“;

де, рівень відладки:
0 – Вимкнути налагодження (значення за замовчуванням)
1 – Включити налагодження.
4 – Додати в налагодження інформацію про значення пов’язаних змінних
8 – Додати в налагодження інформацію про очікування
12 – Комбінація рівнів 4 і 8


У підсумку команда може виглядати так:


ALTER SESSION SET EVENTS “10046 trace name context forever, level 12”;

Щоб включити налагодження для вибраної сесії, виконуємо SQL команду:


EXEC sys.dbms_system.set_sql_trace_in_session([SID],[serial#], TRUE);

або


EXEC sys.dbms_system.set_ev ([SID], [serial #], 10046, уровень_отладкі, “”);

Значення SID і serial # сесії можна знайти в v $ session:


SELECT SID, SERIAL# FROM V$SESSION;
SID SERIAL#
———- ———-
133 46
136 4
137 6
138 8
140 22905

Якщо потрібно включити налагодження для всіх сесій екзмемпляра, то у файлі конфігурації init.ora необхідно виставити параметр sql_trace = true і перевантажити екземпляр. Виставляти налагодження для всіх сесій рекомендується тільки в екстрених випадках, оскільки це створить значне навантаження на сервер.


Крім того, ви можете зробити трасування будь-якого серверного процесу, використовуючи oradebug. Знаючи SID процесу можна отримати його PID (Oracle Process Identifier) ​​або його SPID (Operating System process identifier):


SELECT P.SPID, P.PID
2 FROM V$PROCESS P, V$SESSION S
3 WHERE P.ADDR = S.PADDR
4 AND S.SID = SID;

Потім виконуємо будь-яку з команд, для вказівки процесу:


SVRMGR> ORADEBUG SETOSPID [SPID]

або


SVRMGR> ORADEBUG SETORAPID [PID]

І включаємо налагодження командою:


SVRMGR> ORADEBUG EVENT 10046 trace name context forever, level уровень_отладкі

Ще один варіант включення налагодження, описаний у Тома Кайта. Для включення налагодження на рівні сесії використовується logon-тригер. Цей варіант виключно корисний, коли необхідно отримати налагоджувальну інформацію про сесію, яка працює дуже нетривалий час (секунди).


CREATE OR REPLACE TRIGGER trace_login_trigger
AFTER logon ON DATABASE
BEGIN
IF (USER = “”) THEN
EXECUTE IMMEDIATE “ALTER SESSION SET EVENTS “”10046 trace name
context forever, level “””;
END IF;
END;

По завершенні збору даних, тригер переводиться в стан “DISABLE”. Для відключення тригера виконайте команду SQL:


ALTER TRIGGER trace_login_trigger DISABLE;

Коли тригер знову буде потрібно зібрати налагоджувальну інформацію, включаєте тригер командою:


ALTER TRIGGER trace_login_trigger ENABLE;

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*