JavaScriptが無効になっています。 この状態では一部の情報が表示されず、すべての機能を利用することができません。
JavaScriptが無効になっています。
この状態では一部の情報が表示されず、すべての機能を利用することができません。
パフォーマンスチューニングマニュアルや tkprof などの実行計画の読み方に記載されているものは誤字と記載漏れらしきものがそこそこあった。 マニュアルに記載されている以外にもステートメント自体のオペレーター、メモリ内ソートや WINDOW 操作など多くのオペレーターとオプションがあり、ネット上で調べた範囲では 合計で 約 200 以上ある。
操作オプション操作の内容ver. (※1)NESTED LOOPネステッド・ループ結合 を使用した結合処理8.0 以前OUTERネストしたループを使用した 外部結合 処理MERGE JOIN2つの行セットそれぞれを特定の項目でソートして結合した結果を戻す(ソートは別のオペレーターで出てくる) ⇒ ソート・マージ結合8.0 以前OUTERマージ結合による外部結合ANTIマージ結合によるアンチ結合(逆結合)SEMIマージ結合によるセミ結合(半結合)CARTESIANマージ結合による CARTESIAN=デカルト積(直積) (※1)HASH JOINハッシュによる 2 つの行セットの結合8.0 以前ANTIハッシュによるアンチ結合(逆結合)SEMIハッシュによるセミ結合(半結合)RIGHT ANTIハッシュによる右側アンチ結合RIGHT SEMIハッシュによる右側セミ結合OUTERハッシュによる(左側)外部結合RIGHT OUTERハッシュによる右側外部結合CUBE SCANINNER JOIN によるキューブ・アクセスPARTIAL OUTERINNER JOIN と OUTER JOIN が混成したキューブ・アクセスOUTEROUTER JOIN によるキューブ・アクセス
操作オプション操作の内容ver. (※1)BITMAPCONVERSIONTO ROWIDS : Bitmap 索引 のビットマップ表現を ROWID に変換する8.0 以前FROM ROWIDS : ROWID をビットマップ表現に変換するCOUNT : ROWID の数を戻す。テーブル内の値を必要としない場合に有効(有用)INDEXSINGLE VALUE : あるキー値のビットマップを取得するRANGE SCAN : ある範囲のキー値のビットマップを取得するFULL SCAN : 索引のフル・スキャンを行なうMERGE複数のビットマップを1つにマージするMINUS2つのビットマップのビット減算するORビットマップの OR 演算ANDビットマップ AND 演算 (※1)KEY ITERATION「表」から行を取り出し索引から対応するビットマップを検索する(この処理の後には BITMAP MERGE 操作が続くことが常のようである)DOMAIN INDEXドメイン・インデックスから ROWID を取得する8.1INDEXUNIQUE SCANB-Tree 索引 からユニークキーを使用して1つの ROWID を取得する8.0 以前RANGE SCAN索引から範囲(スタート・キー、ストップ・キー)をキーにして1または複数 ROWID の取得RANGE SCAN DESCENDINGINDEX RANGE SCAN を索引値の降順にスキャンFULL SCAN索引からのすべての ROWID の取得 (※1)FULL SCAN DESCENDINGINDEX FULL SCAN を索引の降順で行なうFAST FULL SCANINDEX FULL SCAN の高速版:マルチブロック読み込みを使用するため取得順番は不定。インデックスに全カラムが含まれている場合 TABLE FULL SCAN と同じ意味になる(※ つまり ROWID だけでなくカラム値も取得する) (※1) CBO のみSKIP SCANINDEX SKIP SCAN を使用した ROWID の取得
操作オプション操作の内容ver. (※1)TABLE ACCESSFULL表のすべての行を取得する8.0 以前CLUSTER「索引クラスタのキーの値」を使用して表から行を取得するHASH「ハッシュ・クラスタのキーの値」を使用して表からの行を取得するBY ROWIDROWID を使用して表からの行を取得する Oracle 9iR2 から消滅BY USER ROWIDROWID を使用して表からの行を取得する(ROWID を条件に指定した場合)8.1BY INDEX ROWID索引を使用して行を取得する(索引はパーティション化していないもの)BY GLOBAL INDEX ROWIDグローバル索引のみを使用して行を取得するBY LOCAL INDEX ROWIDローカル索引と0個以上のグローバル索引を使用して行を取得するSAMPLE表から行のサンプル採取(テーブル・データをランダムサンプリングする) (※1)BY ROWID RANGEROWID 範囲を使用して表からの行を取得するSAMPLE BY ROWID RANGEROWID 範囲を使用した表から行のサンプル採取MAT_VIEW ACCESSFULLTABLE ACCESS "FULL" のマテリアライズドビュー版CLUSTER同 CLUSTER オプション操作HASH同 HASH 操作BY USER ROWID同 BY USER ROWID オプション操作BY INDEX ROWID同 BY INDEX ROWID オプション操作BY GLOBAL INDEX ROWID同 BY GLOBAL INDEX ROWID オプション操作BY LOCAL INDEX ROWID同 BY LOCAL INDEX ROWID オプション操作SAMPLE同 SAMPLE オプション操作BY ROWID RANGE同 BY ROWID RANGE オプション操作SAMPLE BY ROWID RANGE同 SAMPLE BY ROWID RANGE オプション操作MAT_VIEW REWRITE ACCESSFULL ... etcTABLE ACCESS "FULL" のマテリアライズドビュー・リライト版 おそらく MAT_VIEW ACCESS と同じオプション群があると思われる。VIEWビュー の問合せを実行して行を取得する8.0 以前
操作オプション操作の内容ver. (※1)AND-EQUAL複数の ROWID のセットを受け取り重複をなくし共通する ROWID を戻す8.0 以前CONNECT BYCONNECT BY 問合せにおいて階層順に行を取得する8.0 以前 CONCATENATION複数の行のセットの UNION ALL を行なう ⇒ UNION8.0 以前COUNT選択された行数をカウントする8.0 以前STOPKEYWHERE における ROWNUM 条件によって戻す行数を制限したカウント処理FILTER行のセットから条件に合致するものだけを取得する8.0 以前FIRST ROW問合せ結果の最初の行のみを取得する8.0 以前FOR UPDATEFOR UPDATE 句 による行ロック処理8.0 以前HASHGROUP BYハッシュ化することで行のセットをグループ化する HASH JOIN とは別物HASHUNIQUEハッシュ化することで行のセットの重複をなくす処理 ※ ドキュメントに無し Oracle 11g R1 現在INLIST ITERATORIN リスト条件 のそれぞれの値に対して後続操作を反復する8.0 以前CONNECT BYCONNECT BY 問合せにおいて階層順に行を取得する8.0 以前REMOTEリモート・データベースからデータを取得する8.0 以前SEQUENCE順序値 のアクセスをともなう処理8.0 以前SORTAGGREGATE選択した行セットにグループ化し、集約された行セットにグループ関数を適用した結果の取得(結果は単一行になる)8.0 以前UNIQUE行セットをソートし重複をなくすGROUP BYGROUP BY 句によるもの。行セットのグループ化するのための前処理としてのソート ⇒ HASH GROUP BY JOINマージ結合の前処理のソート操作ORDER BYORDER BY 句による行セットのソートUNION2つの行セットの和集合から重複をなくして取得する UNION ALL 処理 ⇒ CONCATENATION8.0 以前
操作オプション操作の内容ver. (※1)PARTITIONPARTITION_START 列 および PARTITION_STOP 列によって指定された範囲のパーティションに対して後続操作を反復する8.0 以前SINGLE1つのパーティションへのアクセス8.1ITERATOR複数のパーティションへのアクセスALL全パーティションへのアクセスINLISTIN リストを元にしたパーティションへのイテレータINVALIDアクセスするパーティションセットが空
操作オプション操作の内容ver. (※1)PX ITERATORBLOCK(Parallel eXecution iterator) パラレル・スレーブ・セット間でのブロックまたはチャンク範囲へのオブジェクトの分割CHUNKPX COORDINATORパラレル実行のコーディネーター(Query Coordinator)PX PARTITIONパラレル実行向けの PARTITION 操作PX RECEIVEPX SEND ノードから送られるパーティション化されたデータを読み取るレシーバー(以前は DISTRIBUTION 列に表示されていたもの)PX SENDQC (RANDOM)パラレル・セット間における配分方法の実装。ランダム、ハッシュ、レンジによるパーティション化(以前は DISTRIBUTION 列に表示されていたもの)HASHRANGE
操作オプション操作の内容ver. (※1)MINUS2つの行セットにおいて最初のセットにあって2番目のセットにない行を取得し、かつ、重複をなくす処理8.0 以前INTERSECTION2つの行セットから重複をなくし共通部分を戻す8.0 以前UNION-ALL2つの行セットを和を戻す(重複した行の削除は行なわない)8.0 以前
(※1) マニュアルに記載されはじめたドキュメントのバージョンを記載している。そのため Oracle 9i R2 と書いてあっても Oracle 9i R1 や、それ以前から実装されている機能がいくつかある。つまり記載されたバージョンからの機能とは限らない。