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

前
次
 

スループット向上のための問合せの最適化

問合せがスループット向上のために最適化された場合は、すべてのヒットが最短時間で戻されます。デフォルトの動作です。

次の各項では、スループット向上のために明示的に最適化する方法を説明します。

CHOOSEモードおよびALL ROWSモード

デフォルトでは、問合せはCHOOSEモードおよびALL_ROWSモードでスループットが向上するように最適化されます。問合せがスループット向上のために最適化された場合は、Oracle Textによってすべての行が最短時間で戻されます。

FIRST_ROWS(n)モード

FIRST_ROWS(n)モードでは、可能な場合、テキスト・ドメイン索引でスコア順にソートされた行が戻されるようにすることで応答時間を短縮するよう、Oracle Databaseのオプティマイザが最適化を行います。これは、FIRST_ROWS(n)ヒントを使用する場合のデフォルトの動作です。

FIRST_ROWS(n)でスループットがさらに向上するように最適化するには、DOMAIN_INDEX_NO_SORTヒントを使用します。スループットの向上とは、すべての行を最短時間で問合せに取り込むことです。

次の例では、スコア順にソートした行を戻すためにテキスト・ドメイン索引を使用せずにスループットを向上させています。かわりに、CONTAINS述語を満たすすべての行が索引から取り出された後で、Oracle Textによって行がソートされます。

select /*+ FIRST_ROWS(10) DOMAIN_INDEX_NO_SORT */ pk, score(1), col from ctx_tab 
            where contains(txt_col, 'test', 1) > 0 order by score(1) desc;

関連項目:

問合せオプティマイザの詳細、およびFIRST_ROWS(n)CHOOSEなどのヒントの使用方法は、Oracle Database SQLチューニング・ガイドを参照してください。