Hitachi

Hitachi Advanced Data Binder AP開発ガイド


5.16 SQLパラレル実行機能が適用される条件

次の条件をすべて満たす場合に,検索系SQL(SELECT文)にSQLパラレル実行機能が適用されます。

SQLパラレル実行機能については,マニュアルHADB システム構築・運用ガイドSQLパラレル実行機能を参照してください。

■SQLパラレル実行機能を使用するための条件

次のどちらかの条件を満たす必要があります。

  • クライアント定義のadb_clt_sql_parallel_execオペランドにYを指定していること。

  • SQL文にSQLパラレル実行指定を指定していること。

■実行環境に関する条件

次の2つの条件を満たす必要があります。

  1. サーバ定義に関する条件

    次の条件をすべて満たす必要があります。

    • サーバ定義のadb_sys_uthd_numオペランドに0を指定していないこと。

    • サーバ定義,またはクライアント定義のadb_sql_exe_max_rthd_numオペランドに0を指定していないこと。

    • サーバ定義のadb_sys_max_parallel_exec_numオペランドに0を指定していないこと。

  2. 検索系SQLを実行するトランザクションに関する条件

    次の条件をすべて満たす必要があります。

    • トランザクションアクセスモードが読み取り専用モードであること。

    • トランザクション隔離性水準がREAD COMMITTEDであること。

■検索対象表に関する条件

検索系SQLの検索対象表(検索系SQLのFROM句に指定する実表)が,次の条件をすべて満たす必要があります。

  • 検索対象表がカラムストア表であること。

  • 検索対象表がマルチチャンク表であること。

  • バージョン04-03以降のHADBサーバで,検索対象表のコスト情報を収集していること。

  • 検索対象表を格納しているデータ用DBエリアが,2つ以上のDBエリアファイルで構成されていること。

■SQL文に関する条件

次の条件をすべて満たす必要があります。

  • SQL文がSELECT文であること。

  • SQL文に集合演算を指定していないこと。

  • SQL文に副問合せを指定していないこと。

■SQL文中の問合せ指定に関する条件

次の6つの条件を満たす必要があります。

  1. SELECT DISTINCTが指定されていないこと。

    ただし,SELECT DISTINCTが指定されている場合でも,HADBサーバがSELECT DISTINCTの実行は不要と判断したときは,SQLパラレル実行機能が適用されます。

  2. FROM句には,実表が1つだけ指定されていること。または,実表1つと,実表に対する集まり導出表だけが指定されていること。

  3. GROUP BY句の指定がある場合,次の条件をすべて満たすこと。

    • グループ化方式としてグローバルハッシュグループ化が適用されていること。

    • 集合関数が指定されている場合,次のどれかだけが指定されていること。

      ・集合関数COUNT(*)

      ・集合関数MIN

      ・集合関数MAX

      ALL集合関数COUNT

      ALL集合関数SUM

      ALL集合関数AVG

  4. GROUP BY句の指定がない場合,次の条件をすべて満たすこと。

    • 次の集合関数のどれかが1つ以上指定されていること。

      ・集合関数COUNT(*)

      ・集合関数MIN

      ・集合関数MAX

      ALL集合関数COUNT

      ALL集合関数SUM

      ALL集合関数AVG

    • ORDER BY句が指定されていて,ソートキーに集合関数を含む値式が指定されている場合,その値式が選択式に指定されていること。

  5. HAVING句の指定があり,HAVING句の探索条件中に集合関数が指定されている場合,次のどれかだけが指定されていること。

    • 集合関数COUNT(*)

    • 集合関数MIN

    • 集合関数MAX

    • ALL集合関数COUNT

    • ALL集合関数SUM

    • ALL集合関数AVG

  6. 値式は,次の条件をすべて満たすこと。

    • ?パラメタを指定していないこと。

    • 日時情報取得関数を指定していないこと。

    • ユーザ情報取得関数を指定していないこと。

    • 次のスカラ関数を指定していないこと。

      RANDOM

      RANDOM_NORMAL

      RANDOMCURSOR

      RANDOMROW

    • 同義語検索指定を指定したスカラ関数CONTAINSを指定していないこと。

    • ウィンドウ関数を指定していないこと。

重要
  • 上記の条件をすべて満たしても,SQLパラレル実行機能を有効に利用できないとHADBサーバが判断した場合,検索系SQLにSQLパラレル実行機能は適用されません。

  • adbexportコマンドのSQL記述ファイルに指定したSQL文については,SQLパラレル実行機能は適用されません。