SQLREDUCEPUT= システムオプション

SQLプロシジャの場合、クエリでのPUT関数の最適化に使用されるエンジンタイプを指定します。PUT関数は、論理的に等価な式で置き換えられます。

該当要素:SAS Environment Manager、自動実行ファイル、OPTIONSステートメント
カテゴリ:ファイル: SASファイル
システム管理: SQL
システム管理: パフォーマンス
PROC OPTIONS GROUP=SASFILES
SQL
PERFORMANCE
注:サイト管理者は、このオプションを制限できます。詳細については、制限されたオプション (SASシステムオプション: リファレンス)を参照してください。

構文

SQLREDUCEPUT= ALL | NONE | DBMS | BASE

構文の説明

ALL

すべてのPUT関数の最適化を考慮することを指定します。これは、クエリがデータのアクセスにどのエンジンを使用するかにかかわりません。

NONE

どのPUT関数も最適化しないことを指定します。

DBMS

SAS/ACCESSエンジンが実行するクエリ内のすべてのPUT関数について最適化を考慮することを指定します。これがデフォルトです。

要件PUT関数に渡す最初の引数は、テーブルから取得される変数である必要があります。テーブルには、SAS/ACCESSエンジンを使用してアクセスする必要があります。

BASE

SAS/ACCESSエンジンまたはBase SASエンジンが実行するクエリ内のすべてのPUT関数について最適化を考慮することを指定します。

詳細

SQLREDUCEPUT=システムオプションを指定すると、SASはPUT関数を最適化してからクエリを実行します。クエリにWHERE句も含まれる場合、WHERE句の評価が簡略化されます。次のSELECTステートメントは、SQLREDUCEPUT=オプションをnone以外の任意の値に設定した場合に最適化されるクエリの例です。

select x, y from &lib..b where (PUT(x, abc.) in ('yes', 'no'));
select x from &lib..a where (PUT(x, udfmt.) = trim(left('small')));

SQLREDUCEPUT=システムオプションとSQLCONSTDATETIMEシステムオプションの両方が指定された場合、PROC SQLは、PUT関数値を決定するために、クエリを実行する前にDATE関数、TIME関数、DATETIME関数、TODAY関数をそれぞれの値で置き換えます。

次の2つのSELECT句は、元のクエリと最適化されたクエリを示しています。

select x from &lib..c where (put(bday, date9.) = put(today(), date9.));

ここでは、SELECT句が最適化されています。

select x from &lib..c where (bday = '17MAR2011'D);

クエリにPUT関数が含まれていない場合、そのクエリは最適化されません。

注: SQLREDUCEPUT=システムオプションで指定した値は、PROC SQLのREDUCEPUT=オプションが設定されない限り、すべてのSQLプロシジャステートメントに対して有効です。REDUCEPUT=オプションの値は、SQLREDUCEPUT=システムオプションよりも優先されます。ただし、REDUCEPUT=オプションの値を変更しても、SQLREDUCEPUT=システムオプションの値は変更されません。

関連項目

最終更新: 2026年4月14日