インサイトテクノロジーの新久保さんの想いに共感し、[Japan Oracle User Group – JPOUG](http://www.jpoug.org/) にメンバーとして参加させていただきました!
Oracle Database Userのみなさんに役立つ活動を行っていきたいと思います!
何かご意見がありましたら、twitterやblogのコメント欄で頂戴できればうれしいです!
|
|||||
インサイトテクノロジーの新久保さんの想いに共感し、[Japan Oracle User Group – JPOUG](http://www.jpoug.org/) にメンバーとして参加させていただきました! Oracle Database Userのみなさんに役立つ活動を行っていきたいと思います! これまでのエントリに記載してきたように、実行計画は階層的なツリー構造で表現 SQL> SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR(NULL, NULL, ‘LAST’)); PLAN_TABLE_OUTPUT Plan hash value: 3514264536 —————————————————————————————– Predicate Information (identified by operation id): 2 – filter(“PA”.”PID”=1) 24 rows selected. ### 実行計画のツリー構造とオペレーションの親子関係 実行計画は、一般に複数のオペレーションから構成されます。オペレーションは、親子関係に たとえば、上記の実行計画は、NESTED LOOPS, TABLE ACCESS FULL などのオペレーション オペレーションの親子関係についてですが、 Id=0 SELECT STATEMENT それぞれのオペレーションは、行ソースとよばれる表から取得した行データ(のサブセット)を出力します。 概念的な説明だけではわかりにくいので、先の実行計画がどのように処理されるかを これまでのエントリで、DBMS_XPLAN.DISPLAY_CURSORをつかってV$SQL_PLAN しかし、当たり前の話ですが、実行計画を取得できたとしても、読めなければ意味がありません。 以下の構成で進める予定です。(エントリ記載次第、リンクを張る予定) * [実行計画のツリーのたどり方](http://www.csus4.net/d/2011/06/20/traverse_plan_tree/) 自身の経験上、実行計画の読み方は一度の説明で理解しにくいようです。 [先のエントリ]( http://www.csus4.net/d/2011/04/30/check_cbo/ ) しかし、この作業は簡単なものではありません。 Oracle Database 9.2 以前など、アドバイザ機能が充実していなかったバージョンを Oracle Database 10g以後では、アドバイザ機能が充実し、SQLチューニングアドバイザ ### 動的サンプリングによる最適な実行計画検討の自動化 実は、動的サンプリングという機能を使うことで、SQLチューニングアドバイザが使用で 前回のエントリで ### format引数 ‘ALL ALLSTATS LAST’ また、PLAN_TABLE_OUTPUTの列に、オペレーション単位の各種実行統計が追加されます。 また、format引数 ‘LAST’が指定されていることで、 なお、前回のエントリで説明しましたが、format引数 ‘ALLSTAT’、’LAST’は ### CBOの見積もりミスを確認する このように、format引数 ‘ALL ALLSTATS LAST’ を指定したDBMS_XPLAN.DISPLAY_CURSOR CBOが作成した実行計画が、本当に最適な実行計画であるか疑問がある場合には、 先日のエントリ ### 基本的なDBMS_XPLAN.DISPLAY_CURSORの使い方 詳細はマニュアル(Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス) * 10.2 : [DISPLAY_CURSORファンクション](http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/appdev.102/B19245-02/d_xplan.htm#i998364) DISPLAY_CURSORファンクションには以下の引数を指定します。 DBMS_XPLAN.DISPLAY_CURSOR( sql_id: SQLの識別子 このファンクションはテーブルファンクションであるため、TABLE演算子で変換すると Oracle DatabaseのSQLパフォーマンス問題が発生したときの、実行計画の取得についてまとめます。 SQLパフォーマンス問題が発生したときに、まず確認すべき情報はSQLの実行計画ですが、 * EXPLAN PLAN : (一般にSQL*Plusから)EXPLAN PLAN FOR < 実行したいSQL>を実行して、実行計画を確認します。 ### EXPLAIN PLANとSQLトレースを使わない理由 従来から存在しており、かつ、広く知られている実行計画の取得方法は、 これら2つの方法には、いくつか使いにくい点があるからです。 [先日のエントリ](http://www.csus4.net/d/2010/12/29/batch_sq/) に、 具体的には、従来(10.2以前)では、バインド変数値によらず、 (*1) ここの説明において、共有カーソルは子カーソルを指します。 ### では、優れたカーソル共有により、意図しない実行計画が使用される事態を予防できるか? またまた前回の更新から時間が空いてしまいました・・・。 ### はじめに 最近、Oracle Databaseのパフォーマンスに関連するトラブルシューティング 原因はいろいろなのですが、バッチ処理で実行されるSQLに、バインド変数 本エントリでは、SQLをバインド変数化のメカニズムと すみません、前回のエントリから5ヶ月近く間が空いてしまいました。 プロとしてのOracle運用管理入門
posted with amazlet at 09.09.19
株式会社コーソル 渡部 亮太
ソフトバンククリエイティブ 売り上げランキング: 320943 * [ソフトバンククリエイティブの本:プロとしてのOracle運用管理入門](http://www.sbcr.jp/books/products/detail.asp?sku=4797355123) 「運用管理」という非常に幅の広い題材であることから、原稿のボリュームが一時500 ### 目次 * Part1 データベース管理者の役割とOracleの起動・停止 * Part2 領域管理 * Part3 オブジェクトの管理 * Part4 ユーザー管理と監査 * Part5 パフォーマンスの管理 * Part6 バックアップ/リカバリとデータ管理 * Part7 構成・設定管理 * Part8 ログファイルの管理と障害対応 ### 執筆において留意した点 * バージョンに依存しない、本質的で重要な機能を中心に記述 本書の記述内容はOracleのマニュアルに記載されているものがほとんどですが、 |
|||||
Copyright © 2025 WR blog - All Rights Reserved Powered by WordPress & Atahualpa |