ローカル・パーティション索引に対して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;