※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

【Oracle】-その他-ORACLEトレース


導入


> sqlplus system/manager
SQL> CREATE USER DBASQLTRACE IDETIFIED BY DBASQLTRACE;
SQL> GRANT CREATE SESSION TO DBASQLTRACE;
SQL> GRANT ALTER SESSION TO DBASQLTRACE;
SQL> GRANT SELECT ANY TABLE TO DBASQLTRACE;
SQL> GRANT SELECT ANY SEQUENCE TO DBASQLTRACE;
SQL> GRANT SELECT ANY DICTIONARY TO DBASQLTRACE;
SQL> GRANT EXECUTE ON DBMS_SYSTEM TO DBASQLTRACE;

トレース取得


> sqlplus <ユーザー名>/<パスワード>
SQL> alter session set sql_trace=true;
SQL> alter session set timed_statistics=true;
~ トレース取得対象のSQLを実行する ~
SQL> alter session set sql_trace=false;
SQL> alter session set timed_statistics=false;
SQL> show parameter dump
~ user_dump_destのパスを確認 ~
SQL> exit
> cd <USER_DUMP_DEST>
> tkprof <trcファイル名> <txtファイル名> sys=no sort=exela.fchela explain=<ユーザー名>/<パスワード>

トレース取得(インスタンス全体)


> sqlplus "/as sysdba"
SQL> alter system set events '10046 trace name context forever,level 12';
~ トレース取得対象のSQLを実行する(別SESSIONでも可) ~
SQL> alter system set events '10046 trace name context off';
SQL> show parameter dump
~ user_dump_destのパスを確認 ~
SQL> exit
> cd <USER_DUMP_DEST>
> tkprof <trcファイル名> <txtファイル名> sys=no sort=exela.fchela explain=<ユーザー名>/<パスワード>