Программирование >>  Oracle 

1 ... 170 171 172 [ 173 ] 174 175 176 ... 469


Глава 10

Session altered.

tkyte@TKYTE816> select owner, count(*)

2 from all objects

3 group by owner;

OWNER COUNT(*)

CTXSYS

DBSNMP

DEMO

DEMO11

MDSYS

MV USER

ORDPLUGINS ORDSYS

PUBLIC

SCOTT

SEAPARK

SYSTEM TKYTE

TYPES

15 rows selected.

26 206 9796

18 3

11279 51 32 3

tkyte@TKYTE816> select a.spid

2 from v$process a, v$session b

3 where a.addr = b.paddr

4 and b.audsid = userenv(sessionid)

SPID

1124

Здесь я проверил, что установлен параметр TIMEDSTATISTICS (без этого устанавливать SQL TRACE практически бесполезно), а затем включил SQL TRACE. Затем я выполнил запрос, который необходимо проанализировать. Наконец, я выполнил запрос для получения идентификатора серверного процесса (SPID - server process ID) - он потребуется для идентификации соответствующего трассировочного файла. После выполнения этого запроса я завершил сеанс SQL*Plus и перешел в каталог на сервере, заданный в качестве значения параметра USER DUMP DEST в файле init.ora. Значение этого параметра можно получить по ходу сеанса с помощью запроса к представлению V$PARAMETER или утилиты DBMS UTILITY (для этого не нужен доступ к представлению V$PARAMETER):

tkyte@TKYTE816> declare

2 l intval number;

3 l strval varchar2(2000) ;

4 l type number;

5 begin

6 l type := dbms utility.get parameter value

7 (user dump dest, l intval, l strval);



Стратегии и средства настройки 551

8 dbms output.put line(l strval);

9 end;

10 /

C:\oracle\admin\tkyte816\udump

PL/SQL procedure successfully completed.

В этом каталоге я обнаружил следующее:

C:\oracle\ADMIN\tkyte816\udp>dir Volume in drive C has no label. Volume Serial Nnber is F4S5-B3C3

Directory of C:\oracle\ADMIN\tkyte816\udmp

03/16/2001 02:55р <DIR>

03/16/2001 02:55р <DIR>

03/16/2001 08:45а 5,114 ORA00860.TRC

03/16/2001 02:52р 3,630 ORA01112.TRC

03/16/2001 02:53р 6,183 ORA01124.TRC

3 File(s) 14,927 bytes

2 Dir(s) 13,383,999,488 bytes free

Несколько трассировочных файлов - вот теперь и пригодится значение SPID. Трассировочный файл моего сеанса - ORA01124.TRC. Я знаю это, потому что значение SPID - часть имени файла. В ОС UNIX используется похожий принцип именования, т.е. в имя файла тоже входит значение SPID. Одна из проблем, связанных с трассировочными файлами, состоит в том, что они могут быть недоступны для чтения пользователям, не входящим в группу администраторов Oracle (например, в группу dba в ОС UNIX). Если они недоступны, попросите администратора базы данных установить параметр

trace files public = true

в файле init.ora на тестовых серверах и серверах разработчиков. Это позволит читать трассировочные файлы на сервере всем пользователям. Эту установку нельзя делать на производственном сервере, поскольку трассировочные файлы могут содержать секретную информацию. В тестовой среде или среде разработки она вполне безопасна. Обратите внимание, что имя параметра начинается с символа подчеркивания. Этот параметр не описан в документации и не поддерживается корпорацией Oracle. Как и в случае с командой EVENTS, которую мы будем использовать чуть позже, этот параметр широко известен и повсеместно используется: поищите с помощью запроса trace files public в Google или любой другой поисковой системе и вы получите много интересной информации об этом параметре.

Теперь, определив свой трассировочный файл, необходимо его сформатировать. Можно читать его и непосредственно. Но около 90 процентов нужной информации легко получить из хорошо сформатированного отчета. Остальные 10 процентов информации обычно не нужны, но если она потребуется, придется получать эту информацию непосредственно из трассировочного файла. Для форматирования трассировочного файла ис-



Глава 10

пользуется утилита командной строки TKPROF. В простейшем случае достаточно выполнить:

C:\oracle\ADMIN\tkyte816\udump>tkprof ora01124.trc report.txt TKPROF: Release 8.1.6.0.0 - Production on Fri Mar 16 15:04:33 2001 (c) Copyright 1999 Oracle Corporation. All rights reserved.

Параметрами команды TKPROF являются имена файла исходных данных и файла результатов обработки. Теперь достаточно открыть файл REPORT.TXT в текстовом редакторе, и мы увидим следующее:

select owner, count(*) from all objects group by owner

call

count

elapsed disk

query

current

rows

Parse

0.00

0.00 0

Execute

0.00

0.00 0

Fetch

1.20

1.21 0

86091

total

1.20

1.21

86091

Misses

in library cache

during parse: 0

Optimizer goal: CHOOSE

Parsing

user

id: 69

Rows

Row Source Operation

SORT GROUP BY

21792

FILTER

21932

NESTED LOOPS

TABLE ACCESS

FULL USER$

21976

TABLE ACCESS

BY INDEX ROWID OBJ$

21976

INDEX RANGE

SCAN (object id

FIXED

TABLE

FULL

X$KZSPR

FIXED

TABLE

FULL

X$KZSPR

FIXED

TABLE

FULL

X$KZSPR

FIXED

TABLE

FULL

X$KZSPR

FIXED

TABLE

FULL

X$KZSPR

FIXED

TABLE

FULL

X$KZSPR

FIXED

TABLE

FULL

X$KZSPR

FIXED

TABLE

FULL

X$KZSPR

FIXED

TABLE

FULL

X$KZSPR

FIXED

TABLE

FULL

X$KZSPR

FIXED

TABLE

FULL

X$KZSPR

FIXED

TABLE

FULL

X$KZSPR

FIXED

TABLE

FULL

X$KZSPR

FIXED

TABLE

FULL

X$KZSPR

11777 NESTED LOOPS

30159 FIXED TABLE FULL X$KZSRO

28971 TABLE ACCESS BY INDEX ROWID OBJAUTH$



1 ... 170 171 172 [ 173 ] 174 175 176 ... 469

© 2006 - 2025 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки.
Яндекс.Метрика