4.5.3 SQLの最適化の指定方法
- 〈この項の構成〉
(1) 指定できる箇所
(a) SQL最適化指定
SQL最適化指定は,次のSQLに指定できます。
-
副問合せ
-
表式
-
DELETE文
-
UPDATE文
(b) SQL最適化オプション,SQL拡張最適化オプション
SQL最適化オプション,及びSQL拡張最適化オプションは,次の箇所で指定できます。なお,通常はシステム共通定義で指定してください(すべてのSQLに対して有効となります)。
-
システム共通定義のpd_optimize_level,pd_additional_optimize_levelオペランド
-
フロントエンドサーバ定義のpd_optimize_level,pd_additional_optimize_levelオペランド
-
クライアント環境定義のPDSQLOPTLVL,PDADDITIONALOPTLVL
-
SQLコンパイルオプション(CREATE PROCEDUREとCREATE TYPEの各SQLに指定した手続き本体,及びALTER PROCEDURE,ALTER ROUTINE,CREATE TRIGGER,並びにALTER TRIGGER)
(2) 優先順位
SQL最適化オプション,及びSQL拡張最適化オプションを複数の箇所に指定した場合の優先順位について説明します。なお,SQL文中にSQL最適化指定を指定している場合は,SQL最適化オプション及びSQL拡張最適化オプションよりSQL最適化指定が優先されます。
(a) ストアドルーチン中以外,及びトリガ中以外の操作系SQL
優先順位は次のようになります。
-
クライアント環境定義のPDSQLOPTLVL,PDADDITIONALOPTLVL
-
フロントエンドサーバ定義のpd_optimize_level,pd_additional_optimize_levelオペランド
-
システム共通定義のpd_optimize_level,pd_additional_optimize_levelオペランド
(b) ストアドルーチン中,及びトリガ中の操作系SQL
優先順位は次のようになります。
-
SQLコンパイルオプション(ALTER PROCEDURE,ALTER ROUTINE,ALTER TRIGGER,CREATE PROCEDURE,及びCREATE TRIGGER,並びにCREATE TYPEの手続き本体)
-
フロントエンドサーバ定義のpd_optimize_level,pd_additional_optimize_levelオペランド
-
システム共通定義のpd_optimize_level,pd_additional_optimize_levelオペランド