2012年10月27日土曜日

Migrate From Stored Outline To SQL Plan Management

Stored Outlineは次バージョン以降で廃止が予定されているということで、SQL Plan Management Plan(以下、SPM)をオラクルは今後推奨。また、Stored OutlineからSPMへのi移行を実施するパッケージ・プロシージャが提供されている。

【必要な権限】
DBMS_SPMパッケージに対する実行権限
ADMINISTER SQL MANAGEMENT OBJECT権限

だと思う。

【移行方法】
DBA_OUTLINES のMIGRATED列が  'NOT-MIGRATED'のアウトラインが、移行前のアウトラインである。 DBMS_SPM.MIGRATE_STORED_OUTLINE ファンクションを使用してアウトラインを
ベースラインに移行するCATEGORY 列を用いて対象を絞り込んで移行するには以下の様に設定する。
-----------------------
DECLARE
  my_rep CLOB;
BEGIN
  my_rep := DBMS_SPM.MIGRATE_STORED_OUTLINE( 
  attribute_name => 'CATEGORYの列を指定', 
  attribute_value => 'OUTLINE名を指定'
  );
END;
/
---------------------- 

【格納されているベースラインの実行計画を見る方法】
select * from table(dbms_xplan.display_sql_plan_baseline(sql_handle=>'XXXXXX'));
【格納されているベースラインを使用したかどうかを確認する方法】
 Stored Outlineでは、DBA_OUTLINESやV$SQLを参照するとアウトラインを使用したかどうかが
 わかるが、ベースラインでは、そのようなビューは見当たらない。あくませ、Acceptedしている
 かどうかである。

その場合、
 1. set autotrace traceonly explainでNotesを見るか
 2. select * from table(dbms_xplan.display_cursor('SQL_ID','CHILD_NUMBER')); 
 でSQL_IDとCHILD_NUMBERを指定してNotesを見るかのどちらかである。
'XXXXXX'は、dba_sql_plan_baselinesビューのsql_handle列を指定する。

0 件のコメント:

コメントを投稿