18.32.1 SQLパラレル実行機能を使用するときの準備作業
SQLパラレル実行機能を使用する場合,ここで説明する準備作業をしてください。
(1) 検索対象表の定義
SQLパラレル実行機能を適用する検索系SQLの検索対象表(SELECT文のFROM句に指定する実表)を,次のように定義してコスト情報を収集してください。
-
検索対象表は,カラムストア表かつマルチチャンク表として定義してください。
-
バージョン04-03以降のHADBサーバで,検索対象表のコスト情報を収集してください。
(2) データ用DBエリアの定義
クラウドストレージ機能を使用していない場合は,データ用DBエリアを定義する際に留意することがあります。
-
クラウドストレージ機能を使用していない場合
検索対象表を格納するデータ用DBエリアを定義する際,2つ以上のDBエリアファイルで構成するように定義してください。詳細については,「5.6.1 データ用DBエリアを設計する際の考慮点」の「(3) データ用DBエリアを構成するデータ用DBエリアファイルの考慮点」を参照してください。
なお,SQLパラレル実行機能を適用した検索系SQLを分割処理するノードの最大数は,次のどちらかの小さい方の値になります。
-
検索系SQLの検索対象表が格納されているデータ用DBエリアのDBエリアファイル数
-
マルチノード構成の全ノード数
- 重要
-
-
検索系SQLを分割処理するノード数を増やしたい場合は,ノード数を増やすだけではなく,データ用DBエリアのDBエリアファイル数も増やす必要があります。例えば,全ノード数が8であっても,DBエリアファイル数が4の場合,検索系SQLを分割処理するノードの最大数は4になります(検索系SQLを処理する際に全ノードを活用できません)。
-
検索系SQLの分割処理が各ノードに均等に割り振られるようにするには,DBエリアファイル数を全ノード数の倍数となるようにしてください。
-
SQLパラレル実行機能を適用した検索系SQLを実行する際,全ノードを使用して分割処理をする必要がない場合は,DBエリアファイル数を全ノード数より少なくするようにしてください。
-
-
クラウドストレージ機能を使用している場合
データ用DBエリアを定義する際に留意することはありません。
なお,SQLパラレル実行機能を適用した検索系SQLを分割処理するノードの最大数は,マルチノード構成の全ノード数になります。
(3) サーバ定義の指定
サーバ定義の次のオペランドの指定値を全ノードで同じにしてください。
-
adb_sys_rthd_num
-
adb_sys_uthd_num
-
adb_sys_shm_huge_page_size
-
adb_sys_cld_cache_total_size※
-
adb_sys_cld_access_area_size※
-
adb_sql_opt_drvtbl_grping_prior
-
adb_sql_exe_max_rthd_num
-
adb_sql_exe_hashgrp_area_size
-
adb_sql_exe_hashtbl_area_size
-
adb_sql_exe_hashflt_area_size
-
adb_sql_tbldef_cache_size
-
adb_sql_rngidx_preread
-
adb_dbbuff_wrktbl_glb_blk_num
-
adb_dbbuff_wrktbl_clt_blk_num
-
adbbuff
-
adbcachegrp※
-
adbcltgrp(-rオプションおよび-eオプション)
- 注※
-
クラウドストレージ機能を使用する場合に限り指定するオペランドです。
- 重要
-
上記のオペランドの指定値がSQLメインノードと異なるノードは,SQLサブノードの候補になりません。
(4) クライアント定義またはSQL文の指定
SQLパラレル実行機能を使用する場合は,次のどちらかの指定をしてください。
-
クライアント定義のadb_clt_sql_parallel_execオペランドにYを指定する
-
SQL文にSQLパラレル実行指定を指定する
adb_clt_sql_parallel_execオペランドについては,マニュアルHADB AP開発ガイドの性能に関するオペランドを参照してください。
SQLパラレル実行指定については,マニュアルHADB SQLリファレンスのSELECT文の指定形式および規則を参照してください。
(5) トランザクションの実行条件の設定
検索系SQLを実行するトランザクションは,次の条件をすべて満たすようにしてください。
-
トランザクションアクセスモードを読み取り専用モードにする
-
トランザクション隔離性水準をREAD COMMITTEDにする
上記の設定は,サーバ定義,クライアント定義,またはJDBCのプロパティで行います。
- メモ
-
SQLパラレル実行機能が適用される検索系SQLについては条件があります。条件については,マニュアルHADB AP開発ガイドのSQLパラレル実行機能が適用される条件を参照してください。