加茂屋株式会社 - ソフトウェアー - Tips


実行計画と統計情報の取得。


オートトレースを使うために。

1.SYSユーザーでデータベースに接続。

CONNECT SYS/CHANGE_ON_INSTALL AS SYSDBA;

2.PLUSTRACE.SQLスクリプトを実行し、PLUSTRACEロールを作成。

@%ORACLE_HOME%\SQLPLUS\ADMIN\PLUSTRCE.SQL;

3.PLUSTRACEロールをオートトレースを使用するUSERに与えます。

GRANT PLUSTRACE TO USER;

4.PLAN_TABLEの作成。

@%ORACLE_HOME%\RDBMS\ADMIN\UTLXPLAN.SQL;

GRANT SELECT ON SYSTEM.PLAN_TABLE TO PUBLIC;

GRANT INSERT ON SYSTEM.PLAN_TABLE TO PUBLIC;

GRANT UPDATE ON SYSTEM.PLAN_TABLE TO PUBLIC;

GRANT DELETE ON SYSTEM.PLAN_TABLE TO PUBLIC;

CREATE PUBLIC SYNONYM PLAN_TABLE FOR SYSTEM.PLAN_TABLE;

*PLAN_TABLE表はPUBLICになった為、オートトレースを使用するOracleユーザーごと

に、用意する必要は、ございません。

オートトレースの実行の仕方。

トレースをONにする

SET AUTOTRACE ON;

実行計画のみ

SET AUTOTRACE TRACEONLY EXPLAIN;

統計情報のみ

SET AUTOTRACE TRACEONLY STATISTICS;

SQL文の経過時間

SET TIMING ON;

インスタンスに対してSQL_TRACEを開始。

INIT.ORAのを設定。

TIMED_STATISTICS=TRUE

SQL_TRACE = TRUE

セッション内でSQL_TRACEを開始する

ALTER SESSION SET SQL_TRACE=TRUE;

トレースファイルは、INIT.ORAで、設定したパスに出力されます。

USER_DUMP_DEST=C:\ORACLE\ADMIN\PC02\UDUMP

トレースファイルを見やすくするためには、TKPROFで、整形します。

コマンドプロンプトで、実行。(クライアントには、TKPROF.EXEは、インストールされていません。)

TKPROF D:\ORA01152.TRC D:\ORA01152.TXT EXPLAIN=USER/PASS

EXPLAIN PLAN の使用での実行計画の取得。

実行の仕方。

DELETE FROM PLAN_TABLE WHERE STATEMENT_ID='PLANTEST';

COMMIT;

EXPLAIN PLAN SET STATEMENT_ID='PLANTEST' FOR

実行計画を取得したい式;

見方

SELECT DECODE(ID,0,'', LPAD(' ',3*(LEVEL-1))|| LEVEL || '.' || POSITION) || ' ' || OPERATION || ' '
|| OPTIONS || ' ' || OBJECT_NAME || ' ' || OBJECT_TYPE || ' ' || DECODE(ID,0,'COST = ' || POSITION) QUERY
FROM PLAN_TABLE CONNECT BY PRIOR ID = PARENT_ID
AND STATEMENT_ID = 'PLANTEST'
START WITH ID = 0
AND STATEMENT_ID = 'PLANTEST';

 

Tipsへ


お問い合わせは、こちら

加茂屋株式会社 (C) Kamoya Corporation