前のページ|次のページ

SPDEWHEVAL=システムオプション

どのオブザベーションがWHERE式の条件を満たすかを判断するプロセスを指定します。

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

構文

SPDEWHEVAL=COST | EVAL1 | EVAL3EVAL4

必須引数

COST

WHERE式を最適化するために使用する評価方法をSPD Engineが決定することを指定します。この処理では、使用するスレッド数を計算します。これにより、十分使用されなかったスレッドを起動するオーバーヘッドが最小化されます。これがデフォルト設定です。

EVAL1

マルチスレッドのインデックス評価方法であり、複数のスレッドを使用することで、WHERE式を満たす行を迅速に判断できます。オブザベーションを取得するために起動されるスレッドの数は、THREADNUM=の値と同じです。

EVAL3EVAL4

単一スレッドのインデックス評価方法であり、単純あるいは複合のWHERE式に使用されます。すべてのキー変数は単純なインデックスを持ち、非同等性を検査する条件は持ちません。オブザベーションの取得にはマルチスレッドが使用される場合もあります。

詳細

SPD Engineは、WHINIT (規則に基づくWHERE式プランナ)を使用して、最もクエリに適した評価方法を選択します。SASシステムオプションMSGLEVEL=Iによって、WHINITメッセージがSASログに出力されます。これは、1つ以上のインデックスがクエリで使用されるかどうかを決定するのに役立ちます。
COSTはSPDEWHEVAL=のデフォルト設定で、WHERE式および任意の使用可能なインデックスを分析します。分析に基づき、SPD EngineがWHERE式を最適化する評価方法を選択します。評価方法は、EVAL1、EVAL3、EVAL4のいずれかになります。インデックスが利用可能でない場合、データを順次読み込む方法を選択できます。または、分析の結果、インデックスの使用では処理時間を改善できないことが示されている場合にも、データを順次読み込む方法を選択できます。
COSTは、WHERE式の処理に使用するスレッドの数を最適化します。COSTは、効率的に使用できるスレッドの数を決定して起動します。THREADNUM=の値に基づき、COSTは使用されていないスレッドを起動しないことで処理時間を大幅に節約できます。
そのWHERE式が他の評価方法基準に厳密に適合する場合以外は、COSTがSPDEWHEVAL=のための推奨値です。COST以外の値がより効率的かどうかを判断するためには、ベンチマークテストの使用を強くお勧めします。
EVAL1は、WHERE式が複雑で、変数に複数のインデックスがあるときにはより効率的な場合があります。EVAL1では、複数のスレッドを起動して、どのセグメントがWHERE式の条件を満たすかを判断します。また、オブザベーションの取得にも複数のスレッドを使用できます。
注: COSTが最適でない場合も多少あります。EVAL1またはEVAL3EVAL4に値を変更することでよりよいパフォーマンスを産めるかどうかは、パフォーマンスベンチマークを実行し、値を変更して再度パフォーマンスベンチマークを実行することで判断できます。結果を比較することで、照会している特定のデータ母集団が、計画中の規則に基づいたWHEREにどのように応答するかがわかります。
前のページ|次のページ|ページの先頭へ