17.5.6 検索方法の種類
検索方式については,マニュアル「HiRDB UAP開発ガイド」を参照してください。
- 〈この項の構成〉
(2) 一つのインデクスを使用した検索
- INDEX SCAN
-
単一列インデクスのインデクスページを検索して絞り込んだ後,表のデータページを検索します。
- KEY SCAN
-
単一列インデクスのインデクスページだけを検索します。データページは検索しません。
- MULTI COLUMNS INDEX SCAN
-
複数列インデクスのインデクスページを検索して絞り込んだ後,表のデータページを検索します。
- MULTI COLUMNS KEY SCAN
-
複数列インデクスのインデクスページだけを検索します。データページは検索しません。
- PLUGIN INDEX SCAN
-
プラグインインデクスを使用して絞り込んだ後,表のデータページを検索します。
- PLUGIN KEY SCAN
-
プラグインインデクスを使用してインデクスページだけを検索します。データページは検索しません。
(3) SELECT-APSL
- SELECT-APSL(HiRDB/パラレルサーバの場合だけ)
-
条件に?パラメタを含んでいる場合,?パラメタの値によって最適な検索方法が変わることがあります。また,前処理時に?パラメタの値が決まらないため,最適な検索方法が決定できません。そのため,SQL実行時にヒット率を計算して検索方法を決定します。
(4) 複数のインデクスを使用した検索
- AND PLURAL INDEXES SCAN
-
AND演算子又はOR演算子で結ばれた探索条件に対して,それぞれのインデクスを使用して検索し,行識別子(ROWID)をそれぞれの作業表に格納します。これらの作業表を,AND演算子の場合は積集合,OR演算子の場合は和集合,ANDNOT演算子(ASSIGN LIST文でだけ使用できます)の場合は差集合をとって,一つの作業表にまとめます。その後,この作業表の行識別子を基に行を取り出します。
各条件から行識別子の作業表を作成するときに,条件列にインデクスがなくても,TABLE SCANによって作業表を作成する場合があります。
- OR PLURAL INDEXES SCAN
-
OR演算子で結ばれた探索条件に対して,それぞれのインデクスを使用して検索し,行識別子(ROWID)を一つの作業表に格納します。この作業表の重複する行を重複排除した後,行識別子を基に行を取り出します。
各条件から行識別子の作業表を作成するときに,条件列にインデクスがなくても,TABLE SCANによって作業表を作成する場合があります。