スケーラブルデータベースサーバ HiRDB Version 8 システム定義(UNIX(R)用)
- 4) pd_optimize_level = SQL最適化オプション〔,SQL最適化オプション〕…
- 〜<識別子又は符号なし整数>
- SQL最適化オプションを指定します。SQL最適化オプションの機能を次に示します。SQL最適化オプションの各機能については,マニュアル「HiRDB Version 8 UAP開発ガイド」を参照してください。
- (凡例)
- S:HiRDB/シングルサーバ
- P:HiRDB/パラレルサーバ
- ○:指定が有効になります。
- ×:指定しても無効になります。
- 《オペランドの指定方法》
- 適用するSQL最適化オプションを選択して,その識別子又は符号なし整数を指定します。識別子で指定する方法と,符号なし整数(計算値)で指定する方法の二つの方法がありますが,通常は識別子で指定してください。
- 識別子で指定する場合
「ネストループジョイン強制」及び「複数のSQLオブジェクト作成」を適用する場合は,次のように指定します。
pd_optimize_level = "FORCE_NEST_JOIN","SELECT_APSL"
- 符号なし整数で指定する場合
「ネストループジョイン強制」及び「複数のSQLオブジェクト作成」を適用する場合は,次のように指定します。
pd_optimize_level = 4,10
- ●HiRDB Version 5.0以前からバージョンアップした場合
- HiRDB Version 5.0以前の合計値指定も有効です。最適化オプションを変更する必要がない場合は,HiRDB Version 6以降にバージョンアップしたときにこのオペランドの指定値を変更する必要はありません。また,最適化オプションを追加する場合は次のように指定できます。
- (例)
- HiRDB Version 5.0で「ネストループジョイン強制」及び「複数のSQLオブジェクト作成」を適用していて,今回「ORの複数インデクス利用の優先」を追加します。
- pd_optimize_level = 14,128
- ただし,この指定方法はどの機能を適用しているか分かりにくいため,識別子指定に変更することをお勧めします。
- 《オペランドの規則》
- ●識別子指定の場合
- SQL最適化オプションを引用符(")で囲んでください。
- ここで説明したSQL最適化オプションを使用しない場合は"NONE"を指定してください。ただし,NONEとNONE以外の識別子を指定した場合,NONEの指定は無効になります。
- 識別子は大文字でも小文字でも指定できます。
- 同じ識別子を2回以上指定しても,1回指定した場合と同じになります。
- ●符号なし整数指定の場合
- ここで説明したSQL最適化オプションを使用しない場合は0を指定してください。ただし,0と0以外の符号なし整数を指定した場合,0の指定は無効になります。
- 同じ符号なし整数を2回以上指定しても,1回指定した場合と同じになります。
- 《指定値の目安》
- 指定値の目安については,マニュアル「HiRDB Version 8 UAP開発ガイド」の「SQL最適化オプション」を参照してください。
- 《オペランドの省略値》
- このオペランドを省略すると,システム共通定義の同じオペランドの指定値が有効となります。システム共通定義の同じオペランドも省略すると,次に示す値が仮定されます。
- HiRDB/シングルサーバの場合
"PRIOR_NEST_JOIN","PRIOR_OR_INDEXES","DETER_AND_INDEXES","RAPID_GROUPING","DETER_WORK_TABLE_FOR_UPDATE","APPLY_ENHANCED_KEY_COND"
- HiRDB/パラレルサーバの場合
"PRIOR_NEST_JOIN","PRIOR_OR_INDEXES","SORT_DATA_BES","DETER_AND_INDEXES","RAPID_GROUPING","DETER_WORK_TABLE_FOR_UPDATE","APPLY_ENHANCED_KEY_COND"
- ただし,pd_sysdef_default_optionオペランドにv6compatibleを指定している場合は"SELECT_APSL"が仮定されます。
- 《注意事項》
- SQL文中にSQL最適化指定を指定している場合は,このオペランドの指定よりもSQL最適化指定が優先されます。SQL最適化指定については,マニュアル「HiRDB Version 8 SQLリファレンス」を参照してください。
- ストアドルーチン及びトリガ中のSQL文(CREATE PROCEDURE,CREATE TYPE,ALTER PROCEDURE,CREATE TRIGGER,ALTER ROUTINE,又はALTER TRIGGER)にSQL最適化オプションを指定している場合は,このオペランドの指定よりもSQL文中のSQL最適化オプションが優先されます。
- 《ほかのオペランドとの関連》
- フロントエンドサーバ定義にpd_floatable_bes,又はpd_non_floatable_besオペランドを指定している場合には,「フロータブルサーバ対象拡大(データ取り出しバックエンドサーバ)」及び「フロータブルサーバ対象限定(データ取り出しバックエンドサーバ)」の指定は無効になります。
- pd_indexlock_modeオペランドにKEYを指定している場合,「更新SQLの作業表作成抑止」の指定は無効になります。
- 《クライアント環境定義との関連》
- このオペランドの値はクライアントごとに変更できます。クライアントごとに変更する場合は,クライアント環境定義のPDSQLOPTLVLオペランドを指定してください。PDSQLOPTLVLオペランドについては,マニュアル「HiRDB Version 8 UAP開発ガイド」を参照してください。
- 5) pd_additional_optimize_level = SQL拡張最適化オプション〔,SQL拡張最適化オプション〕…
- 〜<識別子又は符号なし整数>
- SQL拡張最適化オプションを指定します。SQL拡張最適化オプションの機能を次に示します。SQL拡張最適化オプションの各機能については,マニュアル「HiRDB Version 8 UAP開発ガイド」を参照してください。
- 注※1 これらの項目は「コストベース最適化モード2の適用」を指定した場合に有効になります。
- 注※2 これらの項目は外部表を検索する場合に有効になります。それ以外の場合は無効になります。
- 《オペランドの指定方法》
- 適用するSQL拡張最適化オプションを選択して,その識別子又は符号なし整数を指定します。通常は識別子で指定してください。
- 識別子で指定する場合
「コストベース最適化モード2の適用」及び「ハッシュジョイン,副問合せのハッシュ実行」を適用する場合は,次のように指定します。
pd_additional_optimize_level = "COST_BASE_2","APPLY_HASH_JOIN"
- 符号なし整数で指定する場合
「コストベース最適化モード2の適用」及び「ハッシュジョイン,副問合せのハッシュ実行」を適用する場合は,次のように指定します。
pd_additional_optimize_level = 1,2
- 《オペランドの規則》
- ●識別子指定の場合
- SQL拡張最適化オプションを引用符(")で囲んでください。
- ここで説明したSQL拡張最適化オプションを使用しない場合は"NONE"を指定してください。ただし,NONEとNONE以外の識別子を指定した場合,NONEの指定は無効になります。
- 識別子は大文字でも小文字でも指定できます。
- 同じ識別子を2回以上指定しても,1回指定した場合と同じになります。
- ●符号なし整数指定の場合
- ここで説明したSQL拡張最適化オプションを使用しない場合は0を指定してください。ただし,0と0以外の符号なし整数を指定した場合,0の指定は無効になります。
- 同じ符号なし整数を2回以上指定しても,1回指定した場合と同じになります。
- 《指定値の目安》
- 指定値の目安については,マニュアル「HiRDB Version 8 UAP開発ガイド」の「SQL拡張最適化オプション」を参照してください。
- 《オペランドの省略値》
- このオペランドを省略すると,システム共通定義の同じオペランドの指定値が有効となります。システム共通定義の同じオペランドも省略すると,COST_BASE_2が仮定されます。
- 《注意事項》
- SQL文中にSQL最適化指定を指定している場合は,このオペランドの指定よりもSQL最適化指定が優先されます。SQL最適化指定については,マニュアル「HiRDB Version 8 SQLリファレンス」を参照してください。
- ストアドルーチン及びトリガ中のSQL文(CREATE PROCEDURE,CREATE TYPE,CREATE TRIGGER,ALTER PROCEDURE,ALTER ROUTINE,又はALTER TRIGGER)にSQL拡張最適化オプションを指定している場合は,このオペランドの指定よりもSQL文中のSQL拡張最適化オプションが優先されます。
- 《クライアント環境定義との関連》
- このオペランドの値はクライアントごとに変更できます。クライアントごとに変更する場合は,クライアント環境定義のPDADDITIONALOPTLVLオペランドを指定してください。PDADDITIONALOPTLVLオペランドについては,マニュアル「HiRDB Version 8 UAP開発ガイド」を参照してください。
- 6) pd_floatable_bes = "バックエンドサーバ名"〔,"バックエンドサーバ名"〕…
- 〜<識別子>((1〜8文字))
- フロータブルサーバとして使用するバックエンドサーバを指定します。
- ただし,指定したバックエンドサーバをすべてフロータブルサーバとして使用するとは限りません。
- 通常はデータ取り出しに使用するサーバは,フロータブルサーバとして使用しませんが,このオペランドを指定した場合はデータ取り出しに使用するサーバもフロータブルサーバの候補とします。
- 《オペランドの規則》
- 定義されていないバックエンドサーバ名を指定した場合は無視します。
- すべてが定義されていないバックエンドサーバ名の場合は,このオペランドを無視します。
- 《ほかのオペランドとの関連》
- pd_non_floatable_besオペランドを同時に指定している場合,pd_non_floatable_besオペランドを無効とします。
- pd_floatable_besオペランドを指定すると,pd_optimize_levelオペランドの「フロータブルサーバ対象拡大(データ取り出しバックエンドサーバ)」は適用されません。
- pd_floatable_besオペランドを指定すると,pd_optimize_levelオペランドの「フロータブルサーバ対象限定(データ取り出しバックエンドサーバ)」は適用されません。
- 7) pd_non_floatable_bes = "バックエンドサーバ名"〔,"バックエンドサーバ名"〕…
- 〜<識別子>((1〜8文字))
- フロータブルサーバとして使用しないバックエンドサーバを指定します。
- すべてのバックエンドサーバを指定している場合は,このオペランドを無効とします。
- 《オペランドの規則》
- 定義されていないバックエンドサーバ名を指定した場合は無視します。
- 《ほかのオペランドとの関連》
- pd_floatable_besオペランドを同時に指定している場合,このオペランドを無効とします。
- pd_non_floatable_besオペランドを指定すると,pd_optimize_levelオペランドの「フロータブルサーバ対象拡大(データ取り出しバックエンドサーバ)」は適用されません。
- pd_non_floatable_besオペランドを指定すると,pd_optimize_levelオペランドの「フロータブルサーバ対象限定(データ取り出しバックエンドサーバ)」は適用されません。
All Rights Reserved. Copyright (C) 2006, 2016, Hitachi, Ltd.