Statement tracer for oracle что это за программа

Трассировка сессии Oracle помогает найти проблемные запросы и понять в чем именно причина.

Что именно будет записываться в трассировочный файл, определяется номером события (event).
Стандартный номер события 10046. Именно такой уровень устанавливается при выполнении команды

alter session set sql_trace=true;

Список данных событий и для чего они предназначены можно посмотреть здесь EventReference

Событие трассировки 10046 / Trace event 10046

Включить трассировку в текущей сессии

alter session set events ‘10046 trace name context forever, level 1’;

выключить трассировку в текущей сессии

alter session set events ‘10046 trace name context off’;

  • 0 — трассировка отключена
  • 1 — стандартная трассировка
  • 4 — добавлены значения связываемых (binds) переменных
  • 8 — добавлены события ожидания (waits)
  • 12 — связываемые переменные + события ожидания

Для включения трассировки в другой сессии можно воспользоваться командой

Программирование в PL/SQL (ORACLE) Урок 1 (часть 1 из 3) / Илья Хохлов


sys.dbms_system.set_ev(sid, serial#, 10046, 12, »);

Путь к директории, где появится файл трассировки

select value from v$parameter where name = ‘user_dump_dest’;

Задать имя для trace файла

alter session set tracefile_identifier = ‘mytrace1’;

Понимание трасировочного файла

Выполняем следующий код, чтобы создать trace файл:

SET SERVEROUTPUT ON alter session set tracefile_identifier = ‘mytrace2’ / alter session set events ‘10046 trace name context forever, level 12’ / declare l_row_num number; l_owner varchar2(10) := ‘SYS’; begin select count(1) into l_row_num from all_tables t where t.owner = l_owner; dbms_output.put_line(‘num=’||l_row_num); end; / alter session set events ‘10046 trace name context forever, level 0′ /
Trace file . /»instance_name»_ora_12591_mytrace2.trc Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 — 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options ORACLE_HOME = . System name: . Node name: . Release: . Version: . Machine: . Instance name: «instance_name» Redo thread mounted by this instance: 1 Oracle process number: 545 Unix process pid: 12591, image: . *** 2012-09-19 12:07:49.268 *** SESSION ID:(669.6321) 2012-09-19 12:07:49.268 *** CLIENT ID:() 2012-09-19 12:07:49.268 *** SERVICE NAME:(. ) 2012-09-19 12:07:49.268 *** MODULE NAME:(PL/SQL Developer) 2012-09-19 12:07:49.268 *** ACTION NAME:(Command Window — New) 2012-09-19 12:07:49.268
PARSING IN CURSOR #11529215044981500944 len=54 dep=1 uid=44 oct=3 lid=44 tim=10192202222475 hv=1751201178 ad=’c0000005d60dcaf0′ sqlid=’1f79yzdn62dcu’ SELECT COUNT(1) FROM ALL_TABLES T WHERE T.OWNER = :B1 END OF STMT

Читайте также:
Что за программа smb

cинтаксис

PARSING IN CURSOR #[CURSOR] len=X dep=X uid=X oct=X lid=X tim=X hv=X ad=’X’ sqlid=’X’ [statement] END OF STMT

  • [CURSOR] — номер курсора
  • len — длина SQL запроса
  • dep — рекурсивная глубина SQL запроса
  • uid — id пользователя (user) под которым был разобран запрос

select * from all_users where user_id = :uid;
PARSE #11529215044981500944:c=0,e=370,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=1,plh=0,tim=10192202222474 EXEC #11529215044981500944:c=270000,e=276923,p=0,cr=3,cu=0,mis=1,r=0,dep=1,og=1,plh=242196440,tim=10192202499569 FETCH #11529215044981500944:c=840000,e=1466871,p=2776,cr=71124,cu=0,mis=0,r=1,dep=1,og=1,plh=242196440,tim=10192203966668

PARSE — разбор курсора, EXEC — выполнение курсора, FETCH — получение данных

Как читать план запроса Oracle (последовательность выполнения шагов)


cинтаксис

PARSE #[CURSOR]:c=X,e=X,p=X,cr=X,cu=X,mis=X,r=X,dep=X,og=X,plh=X,tim=X EXEC #[CURSOR]:c=X,e=X,p=X,cr=X,cu=X,mis=X,r=X,dep=X,og=X,plh=X,tim=X FETCH #[CURSOR]:c=X,e=X,p=X,cr=X,cu=X,mis=X,r=X,dep=X,og=X,plh=X,tim=X

  • [CURSOR] — номер курсора
  • c — время в микросекундах затраченное процессором
  • e — общее затраченное время в микросекундах
  • p — число физических чтений (physical reads)
  • cr — количество блоков полученных в режиме согласованного чтения (retrieved for CR reads)
  • cu — количество блоков полученных в текущем режиме (retrieved in current mode)
  • mis — отсутствие курсора в кеше, выполняется hard parse
  • r — количество возвращаемых строк
  • dep — рекурсивная глубина запроса
  • og — Цель оптимизатора: 1=All_Rows, 2=First_Rows, 3=Rule, 4=Choose
  • plh — Hash значение для выполняемого плана. V$SQL_PLAN.PLAN_HASH_VALUE
  • tim — timestamp, в микросекундах

Связываемые переменные / binds

BINDS #11529215044981500944: Bind#0 oacdty=01 mxl=32(10) mxlc=00 mal=00 scl=00 pre=00 oacflg=13 fl2=206001 frm=01 csi=171 siz=32 off=0 kxsbbbfp=9fffffffbf3b37b8 bln=32 avl=03 flg=09 value=»SYS»

  • [CURSOR] — номер курсора
  • bind#N — номер переменной
  • oacdty — тип данных
  • mxl- maximum length of the bind variable value (private maximum length in parentheses)
  • mxlc — ?
  • mal — длина массива
  • scl — масштаб (scale)
  • pre — точность (precision)
  • oacflg — special flag indicating bind options
  • fl2 — second part of oacflg
  • frm — ?
  • csi — идентификатор кодировки
  • siz — объем выделяемой памяти
  • off — offset into the chunk of the bind buffer
  • kxsbbbfp — адрес переменной
  • bln — длина буфера для переменной
  • avl — актуальная длина переменной
  • flg — статус переменной
  • value- значение переменной
Читайте также:
Рджк программа что это

WAIT #11529215044981500944: nam=’Disk file operations I/O’ ela= 285 FileOperation=2 fileno=4 filetype=2 obj#=397424 tim=10192202526355 WAIT #11529215044981500944: nam=’db file sequential read’ ela= 583 file#=4 block#=7927 blocks=1 obj#=397424 tim=10192202526996

  • [CURSOR] — номер курсора
  • nam- тип ожидания
  • ela — затраченное время в микросекундах
  • obj#- номер объекта
  • tim — timestamp, в микросекундах

Остальные параметры зависят от типа ожидания. Увидеть данные параметры можно с помощью запроса:

select * from v$event_name where name = :waitname;
STAT #11529215044981500944 cnt=1 pid=0 pos=1 obj=0 op=’SORT AGGREGATE (cr=71124 pr=2776 pw=0 time=1466915 us)’ STAT #11529215044981500944 cnt=1047 pid=1 pos=1 obj=0 op=’FILTER (cr=71124 pr=2776 pw=0 time=1123290 us)’ STAT #11529215044981500944 cnt=1047 pid=2 pos=1 obj=0 op=’NESTED LOOPS OUTER (cr=68261 pr=2735 pw=0 time=1080842 us cost=3024 size=14145 card=115)’ STAT #11529215044981500944 cnt=1047 pid=3 pos=1 obj=0 op=’HASH JOIN RIGHT OUTER (cr=64291 pr=2289 pw=0 time=954642 us cost=2820 size=11322 card=102)’ . STAT #11529215044981500944 cnt=28 pid=8 pos=1 obj=16 op=’TABLE ACCESS FULL TS$ (cr=33 pr=0 pw=0 time=1609 us cost=8 size=84 card=28)’ STAT #11529215044981500944 cnt=1047 pid=8 pos=2 obj=0 op=’NESTED LOOPS (cr=62544 pr=2252 pw=0 time=561698 us cost=2620 size=8976 card=102)’ .

  • [CURSOR] — номер курсора
  • id — номер строки плана
  • cnt — количество обработанных строк
  • pid — идентификатор родителя
  • pos — позиция относительно родителя
  • obj — ID объекта. ALL_OBJECTS.OBJECT_ID и V$SQL_PLAN.OBJECT#.
  • op — операция
  • cr — согласованное чтение (Consistent read)
  • pr — физическое чтение (Physical reads)
  • pw — физическая запись (Physical writes)
  • time — timestamp, в микросекундах
  • cost — оценка выполнения запроса (CBO)
  • size — объем данных в байтах
  • card — число возвращаемых строк

Похожие записи:

  • No Related Posts

Источник: apps-oracle.ru

Statement Tracer for Oracle

Программы / Разработка / Отладка / Statement Tracer for Oracle

Скачать Statement Tracer for Oracle

Для скачивания будет предоставлена ссылка на дистрибутив программы на сайте компании-разработчика.

Читайте также:
Мрт по программе эпилепсия что это такое

Обзор Statement Tracer for Oracle (автоматический перевод)

STATEMENT TRACER для ORACLE является эффективным и простым в использовании свободным решением для отладки программ, взаимодействующих через интерфейс с Oracle RDBMS.
Просто выполните Statement Tracer, и Вы получите всю информацию, в которой Вы нуждаетесь.
— Очень эффективный при времени инструмент для разработки приложений и отладки.
— Позволяет инженеру службы технической поддержки и администратору базы данных находить проблему без справки от разработчика.
— Дает оценку Вашей производительности приложения в реальной жизни для идентификации возможных проблемных областей.

Источник: www.obnovisoft.ru

трассировщик операторов Oracle JDBC

Я ищу программное обеспечение для отслеживания всех утверждений в моей базе данных оракула. У меня есть приложение Delphi (без исходного кода), и есть много вызываемых хранимых процедур. Чтобы отследить весь выполненный запрос, я использую этот инструмент: Заявление Tracer для Oracle

Это прекрасно работает. Теперь у меня есть веб-приложение (Java + GWT, использующее JDBC для подключения к БД), и мне нужно сделать то же самое. Мне нужны не только вызовы из моего приложения в БД, но и каждый оператор, выполняемый внутри хранимой процедуры. Кто-нибудь знает инструмент, способный это сделать?

yourkit также имеет sql API — MozenRath

Вариантом может быть включение инструментов аудита сервера. См. этот вопрос SO: stackoverflow.com/questions/7914354/oracle-sql-query-loging — Miguel Prz

1 ответы

Есть проект трассировщика jdbc https://github.com/tokuhirom/jdbc-tracer где вы можете импортировать проект через maven и реализовать некоторые слушатели, получая операторы SQL и другую информацию из операторов JDBC. Я уверен, что если вы создадите визуальный проект с помощью своей библиотеки maven, вы сможете создать своего рода визуальный интерфейс, показывающий все SQL-запросы, выполненные с помощью драйвера JDBC.

Не тот ответ, который вы ищете? Просмотрите другие вопросы с метками java oracle gwt jdbc monitoring or задайте свой вопрос.

ADV

Связанные вопросы

Последние вопросы

Связанные теги

stackovergo.com 2022, под лицензией куб.см по-са 3.0 с указанием авторства. | Персональные данные | Cookies политики

Источник: stackovergo.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru