実行計画・統計・サブメニュー
本ページは、Oracleデータベースに対する運用、および障害対応のための操作方法を示すインデックスを記述する
なお、本ページは、
「実行計画・統計 」
に関するサブ・メニュー部分である
―――――――― 効率的な実行計画の考え方 ――――――――
【実行計画の最適化方針】
「実行計画とは」、どのようにテーブルへアクセスするか(インデックス使用、マテリアライズド
ビュー使用)、どの順序でテーブルを結合させるか(外側にデータ数の少ないテーブル)、
どの結合方式(ネステッドループ、ソートマージ、ハッシュ)を使うかを決めたレコードの読取り
手順指示書に相当する
[ オプティマイザの役割 ]
SQL文の処理時間を減らす考え方
【実行計画におけるテーブルへの効率的なアクセス方式】
(実行計画)テーブル結合の最適順序
【テーブル結合の結合順序の最適化ロジック】
実行計画で決定する表へのアクセス方法の項目
(実行計画)テーブル結合の最適順序
テーブル結合の結合順序の最適化ロジック
【SQL文チューニング】
テーブル結合方式による実行計画の効率評価
テーブル結合の結合方式の選択基準
「テーブル結合の結合順序の最適化の仕組み」
【Select文でのテーブル結合方式と実行スピードの関係】
インデックスの有効性を比較して調べるためには、ヒント句で制御して実行計画を調整する
⇒ どのインデックスを使うかをヒント句で指定する
―――――――― 問題がある対象SQLの探し方 ――――――――
大きな実行計画となる長いSQL文の最適実行方法の発見
のための検証ポイント
【「ソート」とトップ10のような「データ件数限定」の実行計画の例】
―――――――― 出力内容についての説明 ――――――――
COMMAND_TYPEに割り当てられている数値一覧
動的V$ビューとStats$テーブルの出力列名
Stats$sql_summaryの列定義
【「SQL実行計画」の見方】
実行計画のOperation優先順位
実行計画の見方
【実行計画のOperation処理順序】
ハッシュ結合の特徴
【実行計画の見方】
実行計画の実行順序についての説明(実行計画の見方)
実行計画のオペレーション(操作)に関する種類(アクセス方法と結合方式)の説明
実行計画のアクセス方法についての説明
実行計画の結合方式についての説明
ネステッドテーブル結合の特徴
【SQLトレース(実行統計)の出力内容】
【SQLトレースの出力内容】
特定のSQLに対する詳細な情報(実行計画、実行時間、待ち時間、
ディスクからの読込みブロック数)
問題ポイントと原因についての解説
【「SQL実行統計情報」の見方】
―――――――― 実行計画の固定化 ――――――――
【プランスタビリティ(実行計画固定化)】
実行計画の固定化のための手段
SQL文が変更できないパッケージでの実行計画だけの変更
ストアドアウトライン(オプティマイザヒントの集合セット)の作成方法
ストアドアウトラインの活用目的
作成されたストアドアウトラインを使って、パッケージ製品のSQL文の実行計画の変更を行う
SQL文の実行において、(過去に使用していた)明示的に指定した実行計画を使用
させることにある
作成されたストアドアウトラインの使用方法
(オプティマイザヒントの集合セット)
実行計画の固定化のための操作方法
= 「SQL管理ベース」への実行計画の登録(保存)+ 登録された実行計画の使用設定
SPMに関するパッケージ、SQLコマンド の一覧
【 SPMが管理するSQL管理ベースの操作関数 】
SPMが管理するSQL管理ベースの識別キーで行われる
SQL_HANDLE: SQLを識別するために付与された識別子
PLAN_NAME: 実行計画を識別するために付与された識別子
[対象操作関数]:
dbms_spm.load_plans_form_coursor_cache、 dbms_spm.drop_sql_plan_baseline
SPM(SQL Plan Management)へのSQL実行計画の自動登録方法
FIXED属性を使った実行計画の自動登録方法
SQL文の実行計画を別のSQL文(ヒント句付き)の実行計画に置き換えてSPMの「SQL管理ベース」へ登録(保存)する方法
⇒『ヒント句を使用して変更したSQL文の実行計画』を、元のSQL文の実行計画
として置き換えて使用する方法
AWR(自動ワークリポジトリ)のSQL情報を基に、実行計画をSPMの「SQL管理ベース」へ登録(保存)する方法
⇒『過去のSQL実行計画』を使って、SQL文の処理を行わせる方法
別のインスタンスのデータベースで作成した実行計画を、異なるデータベースのSPMの「SQL管理ベース」へ登録(保存)する方法
⇒ 違うデータベースの実行計画を【移行】させて、SQL文の処理を行わせる方法
SPM(SQL Plan Management)へのSQL実行計画(SQL計画ベースライン)の手動登録方法
―――――――― 実行計画を変更させる方策 ――――――――
SQLプロファイル(補助統計)について と作成コマンド
【動的サンプリング(オブジェクトの統計情報)】
Select文実行時に統計情報を動的取得するためのサンプリング指定
SQL文の実行時に、動的に統計情報をサンプリングして、その取得した統計情報取得の結果で実行計画を改めて作成し、SQL文を実行する方法
【指定のSQL文の実行計画の明示作成とその使用】
・明示的な実行計画の取得と保存 及び、保存した実行計画の使用の方法
( プランスタビリティ )
SELECT文の記述の変更が出来ない処理に対しての実行計画の変更方法
実行速度を上げるためのSQL文の記述方法のアドバイス (チューニング・アドバイザ)
( 対象SQL文:SQL*PLUSから、直前に実行したSQL文 )
コマンドによるSQL文へのSQLチューニング・アドバイザの解析調査
SQLチューニング・アドバイザの単独使用方法
( SQL*PLUSからのSQL文のチューニング起動方法 )
・SQL文単体の指定
・メモリ上のライブラリ・キャッシュのSQL_ID指定
・AWRリポジトリにあるSQL_ID指定
【SQLチューニング・アドバイザの実行(調査作業)とその調査結果(教示事項)】の適用
SQLチューニング・アドバイザ・レポートの出力方法(コマンドモード)
SQL文の記述を変更しないで、ヒント付きSelect文のような処理を行わせる方法
ヒント付きビューの活用
【ヒント句】 Select文でのテーブル結合方式の明示設定
ヒント句によるSelect文でのテーブル結合方式と結合順序の指定設定
SQL文を毎回ハードパース(実行計画を作成させる)する方法 【ヒント句】DYNAMIC_SAMPLING
使用するインデックスを指定する 【ヒント句】INDEX
オプティマイザヒントの記述方法
(実行計画のアクセス方式の固定指定)
オプティマイザヒントの一覧と使い方(ヒント句一覧)
パラレル処理の指定方法
―――――――― 実行計画に影響するオブジェクト ――――――――
バインドピーク機能とは
バインドピーク機能を使った実行計画とその特徴
バインド変数を使った時のキャッシュからの不適切な実行計画の採用
バインドピーク機能を使わなかった時の実行計画とは
実行計画にバインドピーク機能を使わないようにする方法
作成されているストアドアウトラインの表示
オプティマイザ用統計の統計情報の手動採取方法
―――――――― 個別取得方法 ――――――――
【「SQL実行計画」と「実行統計情報」の取得ツールの特徴】
【SQL文の実行計画の調査方法】
実行したSQL文に対する実行統計と実行計画を調査する方法
【v$SQLAREAビューからの「実行統計情報」の取得方法】
【SQL文から実行計画を表示する方法】 (V$SQL_PLANビューから)
同じ実行計画が使われていたか確認する方法
【DBMS_XPLAN.DISPLAY_CURSORによる実行計画取得方法】
直前に実行したSQL文に対して、SQL実行計画の調査方法
【EXPLAIN PLAN FORによる「SQL実行計画」の取得方法】
SQL文を実行ぜずに、SQL実行計画だけを取得する方法
【別セッションからのSQL_TRACEの取得方法】
【サーバー・プロセス(ユーザー・セッション)のSIDとSERIAL#の調査方法】
【SQLトレースによる「SQL実行計画」と「実行統計情報」の取得方法】
【autotraceを使った「SQL実行計画」と「実行統計情報」の取得方法】
SQLトレース、Statspackの見方(実行統計)
セッションで動作したSQL文と実行計画の調査
10046 (SQL)イベントトレース
セッションで動作したSQL文の調査 10053 (SQL)イベントトレース
SQLトレースの起動方法
【SQLトレースの取得方法】
SQLトレース結果の出力型式の整形方法
【SQLトレース結果を見やすい表示にする出力形式変換(コンバート作業)】
―――――――― Statspack と AWR ――――――――
【Statspackのインストール、スナップショット採取、統計情報出力】
Statspack詳細レポートを使った「SQL実行計画」と「実行統計情報」の入手
―――――――― その他 ――――――――
【オプティマイザが実行計画を作成するときに、類似したSQL文を同一と判断し、実行計画を共有する基準】
現行セッションの直近でのSQLについてのパラレル(並列)度の確認方法
『ORACLE運用対応メニュー』へ戻る