忍者ブログ

OracleDBAの技術メモ

最近物覚えが悪くなったので 仕事中に調べた後々役立つ情報をメモしております。

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

実行計画取得

以下のSQL文により実行計画を取得できる。
ここではExcel等へ取り込みやすくするために、カンマ区切りで出力するようにしている。


select
          operation
|| ',' || options
|| ',' || object_node
|| ',' || object_owner
|| ',' || object_name
|| ',' || object_alias
|| ',' || id
|| ',' || parent_id
|| ',' || depth
|| ',' || position
|| ',' || search_columns
|| ',' || cost
|| ',' || cardinality
|| ',' || bytes
|| ',' || other_tag
|| ',' || cpu_cost
|| ',' || io_cost
|| ',' || temp_space
|| ',' || access_predicates
|| ',' || filter_predicates
|| ',' || time
from gv$sql_plan
where sql_id = '~';


これで、SQL*Plus上でAUTOTRACE ONと同等(若干劣る?)の情報量が出力できる。
ただし、少々編集が必要。
AWR SQLレポート等では出力されない抽出条件は
「access_predicates」、「filter_predicates」に格納される。


また、FROM句のテーブルを DBA_HIST_SQL_PLAN にすることにより、
過去の実行計画も参照できる。
ただし、実行計画が変わっている場合は、SQL_IDも変わっている?
確認のために DBA_HIST_SQLTEXT 等を参照して確認した方がよい。
DBA_HIST_SQL_PLAN では「access_predicates」、「filter_predicates」列も存在するが、
内容は格納されない模様。

ORDER BY句はあえて付加していない。
V$SQL_PLAN はメモリ上に常駐しているため、問合せによって負荷をかけることは少ないが、
ORDER BY句を付加すると余計なソート処理が入るので、
問合せ件数によってはレスポンスも遅くなり、サーバに負荷がかかる恐れもある。
PR

コメント

お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード Vodafone絵文字 i-mode絵文字 Ezweb絵文字

ブログ内検索

プロフィール

HN:
宇佐 義男
性別:
男性
自己紹介:
都内で活動中のフリーエンジニア
最近はOracle DBに関する作業が主です。

カレンダー

03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

最新CM

[08/06 Apagajid]
[06/23 Ajimehof]
[05/28 ovkftcz]
[05/20 Adeepen]
[05/13 Ajirubuy]

バーコード

P R

忍者アナライズ

免責事項

当ブログは日本オラクル株式会社 及びその子会社、関連会社とは一切関係ありません。 当ブログに記述の内容については、実際とは異なる場合があります。 記載しているコマンド、スクリプトを利用したことによって発生した問題、障害等については一切責任を負いません。 利用は自己責任にてお願い致します。