前のページ|次のページ

MAXSEGRATIO=システムオプション

WHERE式を処理する前に、候補セグメントとして識別されるインデックスセグメントのパーセンテージを制御します。これは、インデックス付き変数を含むWHERE式を評価するときに起こります。

該当要素: 構成ファイル、SAS起動時、OPTIONSステートメント、システムオプションウィンドウ
カテゴリ: システム管理:Performance
デフォルト: 75
エンジン: SPD Engineのみ

構文

MAXSEGRATIO=n

必須引数

n

SPD Engineが、WHERE式で参照される値を含むと識別するインデックスセグメントのパーセンテージの上限を指定します。デフォルトは75で、SPD Engineが次を実施することを指定します。

  • インデックスを使用して、特定のWHERE式の値を含んでいるセグメントを識別します。
  • 全セグメントの75%より多くがその値を含むことが判明した場合、候補セグメントの識別を停止します。
有効な値の範囲は0と100の間の整数です。n=0の場合、SPD Engineは候補セグメントを識別しようとせず、かわりに、すべてのセグメントへWHERE式を適用します。n=100の場合は、SPD Engineが100%のセグメントをチェックして候補セグメントを識別し、次に、それらの候補セグメントにだけWHERE式を適用します。

詳細

インデックス付き変数でのWHERE照会では、SPD Engineは、WHERE式の1つ以上の条件と一致する1つ以上の変数値を含むインデックスセグメントの数を判別します。WHERE式がそのWHERE式を満たすオブザベーションを含んでいるセグメントにのみ適用される場合、実質的パフォーマンスの向上が実現する場合がしばしばあります。
SPD Engineは、MAXSEGRATIO=の値を使用して、すべてのセグメントにWHERE式を適用するコストが、候補セグメントを識別し続けるコストより少ない点がどこかを決定します。計算された比率がMAXSEGRATIO=で指定した比率を超過したとき、SPD Engineは候補セグメントの識別を停止し、すべてのセグメントへWHERE式を適用します。
注: テーブルによっては、75%が最適な設定にならない場合もあります。よりよい設定を決定するためには、パフォーマンスベンチマークを実行してパーセンテージを調整し、再度パフォーマンスベンチマークを実行してください。結果を比較することで、照会している特定のデータ母集団がインデックスセグメント比率の変化にどのように応答するかがわかります。

例1: インデックスセグメントの識別

次の例では、SPD EngineはWHERE式を満たすインデックスセグメントの識別を開始し、セグメントの総数と比較して、識別されたセグメントのパーセンテージが65を超過するまで実施します。パーセンテージが65を超えた場合、SPD Engineは候補セグメントの識別を停止し、すべてのセグメントへWHERE式を適用します。
 options maxsegratio=65;

例2: WHERE式の全セグメントへの適用

次の例では、SPD Engineがいずれの候補セグメントも最初から識別せず、WHERE式を全セグメントへ適用します。
options maxsegratio=0;

例3: 全インデックスセグメントの無停止評価

次の例では、SPD Engineがインデックスセグメントの識別を開始し、全セグメントが評価されるまで停止しません。その後で、識別されたすべての候補セグメントにWHERE式が適用されます:。
options maxsegratio=100;
前のページ|次のページ|ページの先頭へ