科学の箱

科学・IT・登山の話題

Oracle

Oracleパフォーマンス調査-3

投稿日:2015年12月10日 更新日:

自分のセッションをトレースする方法

ALTER SESSION SET timed_statistics = TRUE;
ALTER SESSION SET statistics_level=ALL;
ALTER SESSION SET EVENTS '10046 trace name context forever,level 12';

# セッションを抜けると自動的にトレースは停止する
ALTER SESSION SET EVENTS '10046 trace name context off';

# トレースファイルの場所を確認する
SHOW PARAMETER user_dump_dest

# トレースファイルをフォーマットする。
tkprof *.trc

別のセッションについてトレースする方法-1

select sid,serial#,username,machine,program from v$session where owner='&app_owner';

# sidがsession_id, serial#がserial_numになる。
EXEC DBMS_MONITOR.session_trace_enable(session_id =>1234, serial_num=>1234, waits=>TRUE, binds=>TRUE);

# アプリケーションが終了するか、5分ほど程度経過したらトレースを停止する。

EXEC DBMS_MONITOR.session_trace_disable(session_id=>1234, serial_num=>1234);

# トレースファイルが生成されたディレクトリに移動する

tkprof xxxx.trc xxxxx.txt

別のセッションについてトレースする方法-2

# oradebugを用いてトレースする方法もある。ただしOS process IDが必要

SELECT p.PID, p.SPID, s.SID,s.program,s.module,s.username
FROM v$process p, v$session 
WHERE s.paddr = p.addr AND s.SID = &session_id;

# process idが明らかになったらoradebugのsetospidに指定
CONNECT / AS SYSDBA
ORADEBUG SETOSPID 29716
ORADEBUG UNLIMIT
ORADEBUG EVENT 10046 TRACE NAME CONTEXT FOREVER,LEVEL 12; --->enable trace
ORADEBUG EVENT 10046 TRACE NAME CONTEXT OFF; --->Disable trace;

トレースファイルが生成された場所を確認

SET LINESIZE 100
COLUMN trace_file FORMAT A60

SELECT s.sid,
 s.serial#,
 pa.value || '/' || LOWER(SYS_CONTEXT('userenv','instance_name')) || 
 '_ora_' || p.spid || '.trc' AS trace_file
FROM v$session s,
 v$process p,
 v$parameter pa
WHERE pa.name = 'user_dump_dest'
AND s.paddr = p.addr
AND s.audsid = SYS_CONTEXT('USERENV', 'SESSIONID');

11gでのクエリ

SELECT p.tracefile
FROM v$session s
 JOIN v$process p ON s.paddr = p.addr
WHERE s.sid = &sid; --enter session_id to be traced

OracleでSQL+でのトレースについては下記のページにまとまっている。

http://otndnld.oracle.co.jp/document/products/oracle11g/111/doc_dvd/server.111/E05784-01/ch8.htm

各試行の前にはあらかじめキャッシュをクリアしておく

ALTER SYSTEM FLUSH BUFFER_CACHE;
ALTER SYSTEM FLUSH SHARED_POOL;

メタ情報

inarticle



メタ情報

inarticle



-Oracle
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

Oracle Incidentの調査

Oracleでインシデントが発生した時の調査手順 アラートログを取得する。場所はパラメータbackground_dump_destで設定されてたディレクトリに出力される。 アラートログはこの時点でコピ …

no image

Oracleのパフォーマンスについて調べる

Oracleのログ oracleのログは下記の3種類 アラートログ トレースファイル リスナーログ アラートログはOracleからのエラーや警告が出力される。インスタンス別にalert_[ORACLE …

no image

Oracleパフォーマンス調査-2

メモ set autotrace on explain select sysdate from dual set autotrace traceonly on explain select sysda …

2015年12月
« 11月   1月 »
 123456
78910111213
14151617181920
21222324252627
28293031  

side bar top



アーカイブ

カテゴリー