ヘッダーをスキップ
Oracle® Textアプリケーション開発者ガイド
12cリリース1 (12.1)
B71317-04
  目次へ移動
目次
索引へ移動
索引

前
次
 

統計による問合せ最適化の例

次の構造化問合せは、統計を最適化する例です。

select score(1) from tab where contains(txt, 'freedom', 1)  > 0 and author = 'King' and year > 1960;

author列はVARCHAR2型で、year列はNUMBER型であるとします。また、author列にはBツリー索引があるとします。

また、構造化述語authorCONTAINS述語およびyear述語と比較してきわめて厳密であると想定しています。つまり、構造化述語(author = 'King')は、year述語およびCONTAINS述語と比較して、かなり少ない数の行(たとえば、それぞれ1000行および1500行に対して5行)を戻すと想定します。

このような状況の場合、Oracle Textでは、最初に構造化述語(author = 'King')にBツリー索引のレンジ・スキャンを行い、次にROWIDで表アクセスを行った後、Bツリーの表アクセスから戻された行に他の2つの述語を適用することで、この問合せをより効率的に行うことができます。

注意:

テキスト索引の統計が収集されていない場合、コストベース・オプティマイザは、CONTAINS述語の選択性と索引コストが低いものとみなします。