Oracle 11g検証 新機能:SPMって何? その2
<Oracle 11g検証 第3弾 新機能:SPMって何? その2>
ペンネーム: クリープ
先週のバレンタインデーもひっそりと過ぎ、2月のイベントはこれで終わり、
次のイベントは3月のひな祭り。。。
って、ちょっと待った!
ひな祭りの前に大きなイベントがあります!
来る2/26にグランドプリンスホテル赤坂でInsight Worldという弊社イベント
が開催されます。当日はOracleの技術情報や弊社製品のご紹介だけでなく、
F1で大活躍した片山右京氏の講演や、QWEENのトリビュートバンドKWEENによ
るライブなど、見所満載のイベントとなっています。
メルマガでしかインサイトを知らない!という方でももちろん参加可能です
ので、興味あるセッションがあれば、是非足を運んで下さい。
↓詳細は、こちらをチェック!
https://old.insight-tec.com/news/seminar/iw080226.html
宣伝はこれくらいにして、今週もSPMについて検証していきます。
今週は、先週確認できなかった実行計画の登録を実施してみましょう。
■■■■■概要■■■■■
1)SPMを使ってみよう!
1.実行計画を取得
⇒2.取得した実行計画とは異なるものを保留
⇒3.保留された実行計画を検証し、承認/拒否を判断
※.「⇒」は今週作業予定項目
■環境
RedHatLinux ES4 Update 5
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 – Production
1)SPMを使ってみよう!
1.実行計画を取得
⇒2.取得した実行計画とは異なるものを保留
3.保留された実行計画を検証し、承認/拒否を判断
前回は、以下SQL文を実行して、SPMリポジトリ(SQL Management Base)にフ
ルスキャンの実行計画が格納されたところまで確認しました。
SQL> select * from test_spm where seq_no = 1;
今回は、前回の実行計画とは異なる実行計画をSPMリポジトリに保存してみま
しょう。
上記SELECT文は前回フルスキャンだったので、今回はインデックススキャンに
なるようにpk_noにインデックスを作成して実行してみましょう。
SQL> create index idx_test_spm on test_spm(seq_no); Index created. SQL> BEGIN 2 DBMS_STATS.GATHER_INDEX_STATS( 3 ownname => 'TEST' 4 ,indname => 'IDX_TEST_SPM' 5 ); 6 END; 7 / PL/SQL procedure successfully completed. SQL> set autotrace trace SQL> select * from test_spm where seq_no = 1; Execution Plan ---------------------------------------------------------- Plan hash value: 1145642998 ------------------------------------------------------------------------------ | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | ------------------------------------------------------------------------------ | 0 | SELECT STATEMENT | | 1 | 5 | 7 (0)| 00:00:01 | |* 1 | TABLE ACCESS FULL| TEST_SPM | 1 | 5 | 7 (0)| 00:00:01 | ------------------------------------------------------------------------------ Predicate Information (identified by operation id): --------------------------------------------------- 1 - filter("SEQ_NO"=1) Note