スケーラブルデータベースサーバ HiRDB Version 8 UAP開発ガイド
検索方式の種類及び特徴(リストスキャン(LIST SCAN),ROWID FETCH,FOREIGN SERVER SCAN,及びFOREIGN SERVER LIMIT SCANを除く)を次の表に示します。
リストスキャンは,ビュー表の検索,WITH句問合せ式などで,いったん作業表を作成して検索する場合に適用されます。ROWID FETCHは,カーソルを使用した場合などに適用されます。FOREIGN SERVER SCAN及びFOREIGN SERVER LIMIT SCANは,自HiRDBが外部サーバからの検索結果を取得する場合に適用されます。
表4-12 検索方式の種類及び特徴
検索方式 | 処理方式 | 長所 | 短所 |
---|---|---|---|
テーブルスキャン (TABLE SCAN) |
表が格納されているページ(データページ)を順次サーチして,すべての行を参照する方式です。 初回のデータ取り出しは,やや遅いです。 |
全件検索をする場合は高速に検索できます。 また,インデクスでの絞り込みができない場合も,高速に検索できます。 |
条件によって検索結果を絞り込める場合でも,すべてのデータページを参照するため,性能は悪くなります。 |
インデクススキャン (INDEX SCAN, MULTI COLUMNS INDEX SCAN, PLUGIN INDEX SCAN) |
インデクスをバイナリサーチして,目的のデータの行識別子を取得するごとに,その行識別子が指すデータページ中の行を参照する方式です。 初回のデータ取り出しは,速いです。 |
インデクスで絞り込める場合は高速に検索できます。 インデクス構成列の値の順(又は逆)に行を取得できます。※1 クラスタキーインデクスの場合は,あまり絞り込めない場合でも高速に検索できます。 |
インデクスであまり絞り込めない場合は,データページに対するランダムな入出力が増え,性能が悪くなります。 |
キースキャン (KEY SCAN, MULTI COLUMNS KEY SCAN, PLUGIN KEY SCAN) |
インデクスをバイナリサーチして,インデクス中のデータ(インデクス構成列の値又は行識別子)だけを参照する方式です。 インデクスの構成列又は行識別子だけを参照する場合に適用されます。 初回のデータ取り出しは,速いです。 |
インデクスであまり絞り込めない場合でも,データページの入出力がなく,インデクスページを参照するだけなので,高速に検索できます。 また,インデクス構成列の値の順(又は逆)に行を取得できます。※1 |
特にありません。 |
SELECT-APSL | ?パラメタを含んだ条件がある場合,あらかじめ検索方法の候補を複数作成しておいて,?パラメタの値を入力する時点で最適な検索方法を決める方式です。 初回のデータ取り出しの速さは,実際に選択された検索方法によって異なります。 |
?パラメタの値を入力する時点で,インデクスでの絞り込み率を考慮して最適な検索方法を選択できます。 | 最適化情報収集ユティリティ(pdgetcst)を実行しておく必要があります。※2 また,複数の検索方法の候補を作成するため,SQLオブジェクトのサイズが大きくなります。 |
ANDの複数インデクス利用 (AND PLURAL INDEXES SCAN) |
複数のインデクスを使用して複数の作業表を作成し,作業表間の積集合,和集合,及び差集合を組み合わせて結果を求める方式です。 初回のデータ取り出しは,遅いです。 |
積集合,和集合,及び差集合を組み合わせて結果を求めるため,複雑な条件を指定した場合でも,インデクスを使用しての評価ができます。 | 作業表を複数個作成し,それぞれの作業表に対してソートをするため,インデクスであまり絞り込めない場合は,ソートする件数が多くなるため,性能が悪くなります。 |
ORの複数インデクス利用 (OR PLURAL INDEXES SCAN) |
複数のインデクスを使用して検索した結果を,一つの作業表に格納して,最後に重複排除をして結果を求める方式です。 初回のデータ取り出しは,遅いです。 |
OR演算子で結ばれたそれぞれの探索条件に対して,インデクスで絞り込める場合は,高速に検索できます。 | 複数のインデクスを使用して検索した結果を,一つの作業表に格納してソート及び重複排除をするため,重複排除する前の件数が多い場合には,性能が悪くなります。 |
図4-37 TABLE SCANの処理方式
図4-38 INDEX SCANの処理方式
図4-40 MULTI COLUMNS INDEX SCANの処理方式
図4-41 MULTI COLUMNS KEY SCANの処理方式
図4-42 PLUGIN INDEX SCANの処理方式
図4-43 PLUGIN KEY SCANの処理方式
図4-44 AND PLURAL INDEXES SCANの処理方式
図4-45 OR PLURAL INDEXES SCANの処理方式
図4-47 ROWID FETCHの処理方式
図4-48 FOREIGN SERVER SCANの処理方式
図4-49 FOREIGN SERVER LIMIT SCANの処理方式
All Rights Reserved. Copyright (C) 2006, 2016, Hitachi, Ltd.