連載
» 2017年08月09日 05時00分 公開

しばちょう先生の試して納得! DBAへの道(改)(4):「高度なSQL実行計画の取得」を実践する (3/3)

[柴田長,日本オラクル株式会社]
前のページへ 1|2|3       

演習4:「MONITOR」ヒント句で強制的に監視対象にする

 対象のSELECT文に「MONITOR」ヒント句を追加して実行し、再度「dbms_sqltune.report_sql_monitor」ファンクションを実行します。

$ sqlplus TRY/TRY12345
SQL> 
/* MONITORヒント句を付けて実行 */
set trimspool on
set trim on
set pages 0
select /*+ MONITOR */ /* practiceSQL2 */ COL1 || ' : ' || COL2 "Record" from TBL2 where ROWNUM <=3 ;
 
/* 実行したSELECT文のSQL_IDを確認 */
connect / as sysdba
set pagesize 100 linesize 120
col SQL_TEXT for a100
select SQL_ID, CHILD_NUMBER, SQL_TEXT
  from V$SQL
where SQL_TEXT like 'select /*+ MONITOR%' ;
 
SQL_ID        CHILD_NUMBER SQL_TEXT
------------- ------------ ----------------------------------------------------------------------------------------------------
crf5a18jws344            0 select /*+ MONITOR */ /* practiceSQL1 */ COL1 || ' : ' || COL2 "Record" from TBL2 where ROWNUM <=3
 
/* リアルタイムSQL監視のアクティブレポートを生成 */
set linesize 1000
set long 1000000
set longchunksize 1000000
spool sqlmon_active.html
select dbms_sqltune.report_sql_monitor(sql_id=>'crf5a18jws344', type=>'active') from dual;
spool off

 このように、監視したいSQL文内に「MONITOR」ヒント句を埋め込むことで強制的に監視させることが可能です。

 逆に監視対象から外したい場合には、「NO_MONITOR」ヒントを使用します。ただし「MONITOR」ヒントは、初期化パラメーター「CONTROL_MANAGEMENT_PACK_ACCESS」の値が「DIAGNOSTIC+TUNING」に設定されている場合にのみ有効になることに注意してください。

 再度取得したHTMLファイルをブラウザで開いてください。以下のようにレポートが表示されれば成功です(図2)。今回はSQLの実行時間が非常に短いので情報を取得できていないページもありますが、そこはご了承ください。時間がある方は、時間を要するSQL文を使って復習をしてみてください。

photo 図2 

 今回は、より高度なSQLの実行計画の取得方法を2つ紹介しました。

 前回解説した動的パフォーマンスビュー「V$SQL」から取得したSQL_IDやCHILD_NUMBERを用いれば、SQLの実行直後だけではなく、パフォーマンス問題が発生して現場へ駆け付けるような場面においても、過去にさかのぼって実行計画を取得できることをお分かりいただけたと思います(もちろん、Oracle Enterprise Managerの管理画面でもリアルタイムSQL監視レポートを確認できるので、そちらも合わせて利用するのが良いでしょう)。

 それではまた次回お会いしましょう!

筆者紹介

柴田長(しばた つかさ)

photo

日本オラクル データベーススペシャリスト。Oracle GRID Centerの設立当初からオラクルの持つ最新技術をパートナー各社と共同で検証し、これまでにリアルなパフォーマンスに裏付けられた数多くのホワイトペーパーを執筆。2017年現在は、大規模案件の現場を訪問し、お客さまのシステムに最適なソリューションデザインの提案やパフォーマンストラブルの問題解決に従事している


前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.

編集部からのお知らせ

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。