CONTAINS
問合せを応答時間短縮のために最適化すると、ヒットリストの最もスコアの高いドキュメントが必要な場合に、高速なソリューションとなります。
次の例では、標準出力に最初の20個のヒットを戻します。この例では、FIRST_ROWS(n)
ヒントとカーソルを使用します。
declare cursor c is select /*+ FIRST_ROWS(20) */ title, score(1) score from news where contains(txt_col, 'dog', 1) > 0 order by score(1) desc; begin for c1 in c loop dbms_output.put_line(c1.score||':'||substr(c1.title,1,50)); exit when c%rowcount = 21; end loop; end; /
問合せヒントの使用以外にも、次のような要因が問合せ応答時間に影響します。
表統計の収集
メモリー割当て
ソート
元表に存在するLOB列
パーティション化
並列性
問合せで語句を拡張する回数