ローカル・パーティション索引に対してDOMAIN_INDEX_SORT
ヒントを使用すると、特にスコア順にした場合にパフォーマンスが大幅に低下することがあります。これは、結果をソートする前に、全パーティションにまたがる問合せの全ヒットを取得する必要があるためです。
パフォーマンスの低下を回避するには、DOMAIN_INDEX_SORT
ヒントを使用するときにインライン・ビューを使用します。DOMAIN_INDEX_SORT
ヒントを使用すると、次のような条件下で、ローカル・パーティション表の問合せパフォーマンスを向上させることができます。
SCORE()
句による順序を含むテキスト問合せ自体がインライン・ビューとして表されている場合
インライン・ビュー内のテキスト問合せにDOMAIN_INDEX_SORT
ヒントが含まれている場合
インライン・ビューに対する問合せに、ビューからフェッチする行数を制限するROWNUM
述語が含まれている場合
たとえば、次のテキスト問合せがあり、パーティション表doc_tab
に対してローカル・テキスト索引が作成されているとします。
select doc_id, score(1) from doc_tab where contains(doc, 'oracle', 1)>0 order by score(1) desc;
ここで、上位20行のみを取り出す場合は、この問合せを次のように再作成します。
select * from (select /*+ DOMAIN_INDEX_SORT */ doc_id, score(1) from doc_tab where contains(doc, 'oracle', 1)>0 order by score(1) desc) where rownum < 21;