「SQLトレース」(2005/11/04 (金) 16:54:00) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
**トレースの取得方法
◆現行セッションのトレースを取得する
ALTER SESSION SET TIMED_STATISTICS = TRUE;
ALTER SESSION SET SQL_TRACE = TRUE;
◆データベースインスタンス全体でトレースを開始する
データベースインスタンス全体でトレースを開始するには、init.ora で以下のパラメータを設定する。
timed_statistics = true
sql_trace = true
※timed_statisticsパラメータは「ALTER SYSTEM SET TIMED_STATISTICS = TRUE;」コマンドで設定することも可能です。
sql_traceパラメータは、「ALTER SYSTEM」コマンドで設定することはできません。
◆特定ユーザのセッションでトレースを開始する
EXEC DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION(sid, SERIAL#, TRUE);
**現行セッションのトレースを取得する例
◆現行セッションのトレースを開始する
SQL> ALTER SESSION SET TIMED_STATISTICS = TRUE;
セッションが変更されました。
SQL> ALTER SESSION SET SQL_TRACE = TRUE;
セッションが変更されました。
**トレースの取得方法
◆現行セッションのトレースを取得する
ALTER SESSION SET TIMED_STATISTICS = TRUE;
ALTER SESSION SET SQL_TRACE = TRUE;
◆データベースインスタンス全体でトレースを開始する
データベースインスタンス全体でトレースを開始するには、init.ora で以下のパラメータを設定する。
timed_statistics = true
sql_trace = true
※timed_statisticsパラメータは「ALTER SYSTEM SET TIMED_STATISTICS = TRUE;」コマンドで設定することも可能です。
sql_traceパラメータは、「ALTER SYSTEM」コマンドで設定することはできません。
◆特定ユーザのセッションでトレースを開始する
EXEC DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION(sid, SERIAL#, TRUE);
**現行セッションのトレースを取得する例
◆現行セッションのトレースを開始する
SQL> ALTER SESSION SET TIMED_STATISTICS = TRUE;
セッションが変更されました。
SQL> ALTER SESSION SET SQL_TRACE = TRUE;
セッションが変更されました。
◆ SQL文を実行する
SQL> SELECT * FROM EMP ORDER BY EMPNO;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- -------- ---------- ---------- ----------
7369 SMITH CLERK 7902 80-12-17 800 20
7499 ALLEN SALESMAN 7698 81-02-20 1600 300 30
7521 WARD SALESMAN 7698 81-02-22 1250 500 30
・
・
・
7934 MILLER CLERK 7782 82-01-23 1300 10
14行が選択されました。
SQL> SELECT * FROM EMP WHERE EMPNO = 7788;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- -------- ---------- ---------- ----------
7788 SCOTT ANALYST 7566 87-04-19 3000 20
SQL>
◆トレースファイルの確認
コマンドプロンプト
E:\oracle\admin\GP6450\udump>DIR
ドライブ E のボリューム ラベルは ボリューム です
ボリューム シリアル番号は XXXX-XXXX です
E:\oracle\admin\GP6450\udump のディレクトリ
2003/02/22 17:32 <DIR> .
2003/02/22 17:32 <DIR> ..
2003/02/22 17:34 1,285 ORA01336.TRC
1 個のファイル 1,285 バイト
2 個のディレクトリ 14,128,570,368 バイトの空き領域
E:\oracle\admin\GP6450\udump>
◆TKPROF を使ってトレースファイルを整形する
E:\oracle\admin\GP6450\udump>TKPROF ORA01336.TRC A.TXT EXPLAIN=SCOTT2/TIGER
TKPROF: Release 8.1.7.0.0 - Production on 土 Feb 22 17:39:41 2003
(c) Copyright 2000 Oracle Corporation. All rights reserved.
E:\oracle\admin\GP6450\udump>
◆出力結果の例
A.TXT
TKPROF: Release 8.1.7.0.0 - Production on 土 Feb 22 17:39:41 2003
(c) Copyright 2000 Oracle Corporation. All rights reserved.
Trace file: ORA01336.TRC
Sort options: default
********************************************************************************
count = number of times OCI procedure was executed
cpu = cpu time in seconds executing
elapsed = elapsed time in seconds executing
disk = number of physical reads of buffers from disk
query = number of buffers gotten for consistent read
current = number of buffers gotten in current mode (usually for update)
rows = number of rows processed by the fetch or execute call
********************************************************************************
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.01 0.01 0 0 0 0
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 1 0.01 0.01 0 0 0 0
Misses in library cache during parse: 0
Optimizer goal: CHOOSE
Parsing user id: 43 (SCOTT2)
********************************************************************************
SELECT *
FROM
EMP ORDER BY EMPNO
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.01 0.01 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 2 0.00 0.01 1 4 0 14
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 4 0.01 0.02 1 4 0 14
Misses in library cache during parse: 1
Optimizer goal: CHOOSE
Parsing user id: 43 (SCOTT2)
Rows Row Source Operation
------- ---------------------------------------------------
14 TABLE ACCESS BY INDEX ROWID EMP
15 INDEX FULL SCAN (object id 25260)
Rows Execution Plan
------- ---------------------------------------------------
0 SELECT STATEMENT GOAL: CHOOSE
14 TABLE ACCESS (BY INDEX ROWID) OF 'EMP'
15 INDEX (FULL SCAN) OF 'PK_EMP' (UNIQUE)
********************************************************************************
SELECT *
FROM
EMP WHERE EMPNO = 7788
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 2 0.00 0.00 0 2 0 1
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 4 0.00 0.00 0 2 0 1
Misses in library cache during parse: 1
Optimizer goal: CHOOSE
Parsing user id: 43 (SCOTT2)
Rows Execution Plan
------- ---------------------------------------------------
0 SELECT STATEMENT GOAL: CHOOSE
0 TABLE ACCESS (BY INDEX ROWID) OF 'EMP'
0 INDEX (UNIQUE SCAN) OF 'PK_EMP' (UNIQUE)
********************************************************************************
OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTS
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 2 0.01 0.01 0 0 0 0
Execute 3 0.01 0.01 0 0 0 0
Fetch 4 0.00 0.01 1 6 0 15
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 9 0.02 0.03 1 6 0 15
Misses in library cache during parse: 2
OVERALL TOTALS FOR ALL RECURSIVE STATEMENTS
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 0 0.00 0.00 0 0 0 0
Execute 0 0.00 0.00 0 0 0 0
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 0 0.00 0.00 0 0 0 0
Misses in library cache during parse: 0
3 user SQL statements in session.
0 internal SQL statements in session.
3 SQL statements in session.
2 statements EXPLAINed in this session.
********************************************************************************
Trace file: ORA01336.TRC
Trace file compatibility: 8.00.04
Sort options: default
0 session in tracefile.
3 user SQL statements in trace file.
0 internal SQL statements in trace file.
3 SQL statements in trace file.
3 unique SQL statements in trace file.
2 SQL statements EXPLAINed using schema:
SCOTT2.prof$plan_table
Default table was used.
Table was created.
Table was dropped.
25 lines in trace file.
**特定ユーザのセッションでトレースを取得する例
◆ 権限の付与とシノニムの作成
Oracle SQL*Plus
SQL> CONNECT SYS/CHANGE_ON_INSTALL
接続されました。
SQL> GRANT EXECUTE ON DBMS_SYSTEM TO SYSTEM;
権限付与が成功しました。
SQL> CREATE PUBLIC SYNONYM DBMS_SYSTEM FOR SYS.DBMS_SYSTEM;
シノニムが作成されました。
SQL>
◆ユーザのセッションID(sid)とシリアル番号(serial#)を取得する
Oracle SQL*Plus
SQL> CONNECT SYSTEM/MANAGER@GP6450
接続されました。
SQL> SELECT SID, STATUS,
2 SUBSTR(USERNAME, 1, 8) USERNAME,
3 SUBSTR(SCHEMANAME, 1, 8) SCHEMANAME,
4 SUBSTR(OSUSER, 1, 16) OSUSER,
5 SUBSTR(MACHINE, 1, 16) MACHINE,
6 SUBSTR(PROGRAM, 1, 16) PROGRAM,
7 SERIAL#
8 FROM V$SESSION
9 WHERE USERNAME IS NOT NULL
10 ORDER BY SID;
SID STATUS USERNAME SCHEMANAME OSUSER MACHINE PROGRAM SERIAL#
---------- -------- ---------------- ---------------- -------------------------------- ---------------- ---------------- -------------------------------- ----------
11 ACTIVE SYSTEM SYSTEM GP6450\USER01 WORKGROUP\GP6450 SQLPLUSW.EXE 1819
14 INACTIVE SCOTT2 SCOTT2 GP6450\USER01 WORKGROUP\GP6450 SQLPLUSW.EXE 4723
SQL>
◆ 特定ユーザのセッションでトレースを開始する
Oracle SQL*Plus
SQL> EXEC DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION(14, 4723, TRUE);
PL/SQLプロシージャが正常に完了しました。
SQL>
表示オプション
横に並べて表示:
変化行の前後のみ表示: