oracle中的CTX索引相当慢?

时间:2018-04-17 11:29:29

标签: oracle

我在oracle列中使用CTX索引。

我有两张桌子

xyz have 6 million record.
abc has 100k record

我想要实现的是这个。

场景 - 我必须将它们联合起来,然后我需要按日期排序数据。然后我需要他们的分页记录。

  select page_loc, blurb_id, article_id, hit_date,val_rank  from (
           SELECT REGEXP_REPLACE(regexp_replace(page_loc, '^.*mercer\.com'),'\?.*$') AS  page_loc,
           blurb_id, article_id, hit_date,RANK() OVER (ORDER BY hit_date DESC) AS val_rank
           from (
             SELECT  page_loc, blurb_id, article_id, hit_date
             FROM abc u INNER JOIN person p ON u.person_id=p.person_id
             WHERE (CONTAINS(u.page_loc,v_pattern) > 0 )
               UNION ALL
             SELECT e page_loc, blurb_id, article_id, hit_date
             FROM xyz u INNER JOIN person p ON u.person_id=p.person_id
             WHERE  ( CONTAINS(u.page_loc,v_pattern) > 0)
          ) p
            left join
          company c on c.company_id = p.company_id
          ) a
          where val_rank between (v_page_no -1) * 10  and v_page_no * 10

v_pattern - >搜索文字 v_page_no - >页数

我需要很长时间才能记录一些v_pattern,例如100k,

例如一个单词有200万条记录。这需要20多分钟。

知道我该怎么做。或者用oracle是不可能的。

注意: - 当我分析它时,我发现顺序和分页使它变慢。我该如何克服

0 个答案:

没有答案