4.9.2 適用条件
グループ分け高速化機能は,次に示す条件をすべて満たすSQLを実行する場合に適用されます。
-
HiRDB/パラレルサーバの場合
-
GROUP BY句を指定している。
-
システム共通定義,フロントエンドサーバ定義,クライアント環境定義,又はルーチン定義のSQL最適化オプションでグループ分け高速化機能を利用することを定義している。
-
選択式列長が4,096以下である。
-
集合演算(UNION,EXCEPT)の入力となる問合せ指定のグループ分け処理ではない。
-
集合関数内にDISTINCT指定がない。
-
集合関数内に,定義長が256バイト以上の文字列型,若しくはBINARY型,又はBLOB型の列の指定がない。
-
GROUP BY句が指定されている問合せ指定中に,HAVING句が指定されているならば,そのHAVING句に副問合せの指定がない。
-
選択式に副問合せの指定がない。
ただし,次の場合はSQL最適化オプションの指定にかかわらず高速に処理をしています。
-
グループ化列のインデクスを利用することで,ソート処理をしないでグループ分けを実行できる。
また,グループ分け高速化機能を使用する場合,次の機能は適用できません。
-
複数のオブジェクトを作成する機能
-
ANDの複数インデクス利用(ただし,構造化繰返し述語,又はインデクス型プラグイン専用関数の条件については適用します)
-
-
HiRDB/シングルサーバの場合
-
GROUP BY句を指定している。
-
システム共通定義,クライアント環境定義,又はルーチン定義のSQL最適化オプションでグループ分け高速化機能を利用することを定義している。
-
集合演算(UNION,EXCEPT)の入力となる問合せ指定のグループ分け処理ではない。
-
集合関数内にDISTINCT指定がない。
-
集合関数内に,定義長が256バイト以上の文字列型,若しくはBINARY型,又はBLOB型の列の指定がない。
ただし,次の場合はSQL最適化オプションの指定にかかわらず高速に処理をしています。
-
グループ化列のインデクスを利用する,又はソートマージ結合のための結合列のソートによって,ソート処理をしないでグループ分けを実行できる。
また,グループ分け高速化機能を使用する場合,次の機能は適用しません。
-
ANDの複数インデクス利用(ただし,構造化繰返し述語,又はインデクス型プラグイン専用関数の条件については適用します)
-