Hitachi

ノンストップデータベース HiRDB Version 9 コマンドリファレンス(Windows(R)用)


17.5.9 グループ分け処理方式の種類

暗黙的グループ分け処理:

問合せ式にGROUP BY句を指定しないで,選択式又はHAVING句中に集合関数を指定した場合の処理です。

明示的グループ分け処理:

問合せ式にGROUP BY句を指定した場合の処理です。

〈この項の構成〉

(1) HiRDB/シングルサーバ

(a) 暗黙的グループ分け処理をする場合

IMPLICIT MIN-MAX INDEX:

集合関数MIN,MAXを求めるときに,インデクスの最小値,最大値だけを検索する処理方式です。

IMPLICIT SET FUNCTION SCAN{+}:

行を検索するときに,集合関数の結果を同時に求める処理方式です。

IMPLICIT NORMAL:

行を検索してから,集合関数の結果を求める処理方式です。

IMPLICIT LIST SORT{SET FUNCTION SCAN}:

集合関数中にDISTINCTが含まれる場合に,作業表を作成し重複排除のためにソートしてから集合関数の結果を求める処理方式です。

IMPLICIT SURROGATE(COUNT):

サロゲート機能を使用して集合関数の結果(行数)を求める処理方式です。サロゲート機能とは,プラグインインデクスを呼び出して探索条件を評価すると同時に,プラグイン提供関数の内部で集合関数の結果を求め,集合関数の結果を高速に返却する専用処理のことです。

IMPLICIT SORT CANCEL BY INDEX{SET FUNCTION SCAN}:

重複排除のためのソート処理をしなくてもインデクスを検索することで,DISTINCT集合関数に指定した列をソートできる場合に,重複排除のためのソート処理を省略し,集合関数の結果を求める処理方式です。

(b) 明示的グループ分け処理をする場合

SORT CANCEL BY INDEX{SET SCAN}:

グループ化のためのソート処理をしなくても,インデクスを検索することでグループ化列をソートできる場合に,グループ化のためのソート処理を省略する方式です。

SORT CANCEL BY JOIN:

グループ化のためのソート処理が,マージジョインのためのソート処理によってキャンセルされる場合に,グループ化のためのソート処理を省略する方式です。

HASH:

グループ分け高速化機能を使用する方式です。グループ分け高速化機能については,マニュアル「HiRDB Version 9 UAP開発ガイド」を参照してください。

LIST SORT:

作業表を作成してソートすることでグループ化処理をし,グループ化の結果を求める処理方式です。

PRE-SORT JOIN:

すべてのグループ化列が,結合する前の外表又は外側の結合表に含まれる場合に,結合する前の外表又は外側の結合結果に対してソートをして,ソート順を保ったまま結合してグループ化処理をすることで,グループ化の結果を求める処理方式です。

(2) HiRDB/パラレルサーバ

(a) 暗黙的グループ分け処理をする場合

IMPLICIT MIN-MAX INDEX:

集合関数MIN,MAXを求めるときに,各バックエンドサーバで,インデクスの最小値,最大値だけを検索する処理方式です。

IMPLICIT SET FUNCTION SCAN{+}:

各バックエンドサーバで,行を検索するときに,集合関数の結果を同時に求める処理方式です。

IMPLICIT NORMAL:

各バックエンドサーバで,行を検索してから,バックエンドサーバごとの集合関数の結果を求める処理方式です。

IMPLICIT FLOATABLE:

フロータブルサーバに集めて全体の集合関数の結果を求める処理方式です。

IMPLICIT FLOATABLE SORT{SET FUNCTION SCAN}:

集合関数中にDISTINCTが含まれる場合に,フロータブルサーバに集めて作業表を作成し,重複排除のためにソートしてから集合関数の結果を求める処理方式です。

IMPLICIT SURROGATE(COUNT):

各バックエンドサーバで,サロゲート機能を使用してバックエンドサーバごとの集合関数の結果(行数)を求める処理方式です。サロゲート機能とは,プラグインインデクスを呼び出して探索条件を評価すると同時に,プラグイン提供関数の内部で集合関数の結果を求め,集合関数の結果を高速に返却する専用処理のことです。

IMPLICIT SORT CANCEL BY INDEX{SET FUNCTION SCAN}:

重複排除のためのソート処理をしなくてもインデクスを検索することで,DISTINCT集合関数に指定した列をソートできる場合に,重複排除のためのソート処理を省略し,集合関数の結果を求める処理方式です。

IMPLICIT LIST SORT{SET FUNCTION SCAN}:

集合関数にDISTINCTが含まれる場合に,各バックエンドサーバで作業表を作成し,重複排除のためにソートしてから集合関数の結果を求める処理方式です。

(b) 明示的グループ分け処理をする場合

SORT CANCEL BY INDEX{SET SCAN}:

グループ化のためのソート処理をしなくても,インデクスを検索することでグループ化列をソートできる場合に,グループ化のためのソート処理を省略する方式です。

SORT CANCEL BY JOIN:

グループ化のためのソート処理が,マージジョインのためのソート処理によってキャンセルされる場合に,グループ化のためのソート処理を省略する方式です。

HASH:

グループ分け高速化機能を使用してグループ化の結果を求める処理方式です。グループ分け高速化機能については,マニュアル「HiRDB Version 9 UAP開発ガイド」を参照してください。

LIST SORT:

各バックエンドサーバで作業表を作成してソートし,グループ化の結果を求める処理方式です。

PRE-SORT JOIN:

すべてのグループ化列が,結合する前の外表又は外側の結合表に含まれる場合に,結合する前にソートをし,ソート順を保ったまま結合してグループ化処理をすることで,グループ化の結果を求める処理方式です。

FLOATABLE SORT:

複数のフロータブルサーバに転送し,作業表を作成してソートすることでグループ化の結果を求める処理方式です。