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

         

Анализ трассировочных файлов


Полученные трассировочные файлы можно анализировать непосредственно. Форматы всех записей описаны в документации [], а сам процесс анализа неоднократно описывал, например, Том Кайт []. Тем не менее, обычно достаточно проанализировать намного меньший объем более удобно структурированной информации, которую можно получить по трассировочному файлу с помощью утилиты tkprof:

C:\oracle\admin\openxs\udump>tkprof openxs_ora_3532.trc 3532.tkp

Формат результатов и опции утилиты tkprof также подробно описаны в документации (см. []), но обычно полученный файл во многом понятен и без чтения документации. (В я перевел начальные комментарии на русский, чтобы представленные основные показатели были понятнее широкой аудитории.)

Листинг 2. Результат обработки трассировочного файла утилитой tkprof

TKPROF: Release 9.2.0.1.0 - Production on Нд. Квт 17 20:02:56 2005

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

Trace file: openxs_ora_3532.trc Sort options: default

******************************************************************************** count = сколько раз была выполнена соотвествующая функция OCI cpu = процессорное время выполнения elapsed = реальное время выполнения disk = количество физических чтений блоков с диска query = количество блоков, полученных согласованным чтением current = количество блоков, полученных в текущем режиме (обычно - для измнения) rows = количество строк, обработанных вызовом fetch или execute ********************************************************************************

alter session set sql_trace = true

call count cpu elapsed disk query current rows ------- ------ -------- ---------- ---------- ---------- ---------- ---------- Parse 0 0.00 0.00 0 0 0 0 Execute 1 0.00 0.03 0 0 0 0 Fetch 0 0.00 0.00 0 0 0 0 ------- ------ -------- ---------- ---------- ---------- ---------- ---------- total 1 0.00 0.03 0 0 0 0

Misses in library cache during parse: 0 Misses in library cache during execute: 1 Optimizer goal: CHOOSE Parsing user id: 59 ******************************************************************************** ... ********************************************************************************


select * from emp

call count cpu elapsed disk query current rows ------- ------ -------- ---------- ---------- ---------- ---------- ---------- Parse 1 0.03 0.13 1 1 0 0 Execute 1 0.00 0.00 0 0 0 0 Fetch 2 0.00 0.00 1 4 0 14 ------- ------ -------- ---------- ---------- ---------- ---------- ---------- total 4 0.03 0.13 2 5 0 14

Misses in library cache during parse: 1 Optimizer goal: CHOOSE Parsing user id: 59

Rows Row Source Operation ------- --------------------------------------------------- 14 TABLE ACCESS FULL EMP

******************************************************************************** ...

Trace file: openxs_ora_3532.trc Trace file compatibility: 9.00.01 Sort options: default

1 session in tracefile. 3 user SQL statements in trace file. 12 internal SQL statements in trace file. 15 SQL statements in trace file. 13 unique SQL statements in trace file. 149 lines in trace file.

Для каждого выполненного SQL-оператора, выполненного пользователем или приложением (и рекурсивных SQL-операторов, выполненных при этом сервером) выдается его текст, статистическая информация о количестве анализов, выполнений, выборок результатов и т.п., реальный план выполнения, с количеством строк на выходе каждого шага выполнения и другая информация, в зависимости от уровня трассировки, версии Oracle и версии утилиты tkprof. В конце представлена итоговая информация - по какому трассировочному файлу построены результаты, сколько и каких операторов было выполнено, и т.п.

Важность полученной информации очевидна любому разработчику и администратору. Мы еще не раз подчекнем это далее, описывая историю развития средств трассировки SQL-операторов в Oracle.


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