とっても ORACLE> AUTOTRACEを使って実行計画を見る■インデックスは使われているの? これを簡単に調べるにはAUTOTRACEを使うと良いでしょう。 SQL*Plusを立ち上げ、SET AUTOTRACE ON と入力します。 (止めるときは、SET AUTOTRACE OFFです。) ●SQL*Plus AUTOTRACE SET AUTOTRACE ON 〜 ON SQL文の結果ありで自動トレースを有効 TRACEONLY SQL文の結果なしで自動トレースを有効 EXPLAIN 実行結果を表示するが統計は表示しない STATISTICS 統計を表示するが実行結果は表示しない ※前提条件として、PLAN_TABLEが作成されていなければならない。(注1) 例えば、AUTOTRACEをONにしてSQLを実行してみます。
HOGEテーブルはTABLE ACCESS (FULL)ということでフルスキャンになってしまっています。 次にhoge_cdにINDEXを付けてみました。
INDEX (RANGE SCAN)インデックスが使われたことがわかります。 またStatistics(統計情報)の方には物理アクセスやソートがどれくらいあったかが出ます。
■EXPLAIN_PLANとの違い SQL TRACEが実際にDB上のデータを検索して結果を表示するのに対して,EXPLAINPLANは、指定したSQL文を実行するためにOracleが使う実行計画の各ステップを解析します。 つまり、実データの投入前などであれば、EXPLAIN PLANを使って理論的にチューニングポイントを探すことになります. ■お膳立て(注1) sysユーザーで?/sqlplus/admin/plustrce.sqlを流し、 plustrace ロールを作成
AUTOTRACEを取得するユーザにロールを付加する
そのユーザーで?/rdbms/admin/utlxplanを流すと 実行計画を保存するためのテーブルを作成
オラクル製品のお見積りご購入はこちら ユーザー登録すると、オンライン特別割引価格で見積できます。
|
|
|||||||
Copyright(c) 1999-2018 ITNAVI.com サイト運営者情報
|