我的sql语句如下:
select jqno,jqchara,jqtime,bjtel,afaddr from (select jqno,jqchara,jqtime,bjtel,afaddr from case_lq where jqchara='牙刷' or jqchara='汽车' order by jqno desc) where rownum<11
上述sql语句的目的是:想查询视图case_lq并按照jqno排序,把最新的10条数据检索出来。
其中case_lq有200多万数据。上述sql语句执行要107秒,请问如何修改我的sql语句才能提高速度。
select jqno,jqchara,jqtime,bjtel,afaddr from (select jqno,jqchara,jqtime,bjtel,afaddr from case_lq where jqchara='牙刷' or jqchara='汽车' order by jqno desc) where rownum<11
上述sql语句的目的是:想查询视图case_lq并按照jqno排序,把最新的10条数据检索出来。
其中case_lq有200多万数据。上述sql语句执行要107秒,请问如何修改我的sql语句才能提高速度。
改成select jqno,jqchara,jqtime,bjtel,afaddr from case_lq where jqchara='牙刷' or jqchara='汽车' and rownum<11 order by jqno desc 不行吗 干吗 需要过滤一下
另外 建议 给jqchara 建一个 注视表 char型得 再数据库中 搜索 太慢
“另外 建议 给jqchara 建一个 注视表 char型得 再数据库中 搜索 太慢 ”
over (order by jqno) rn from case_lq where jqchara='牙刷' or jqchara='汽车) where rn<11
再不行,贴执行计划
create materialized view MyMview
refresh complete on demand
start with sysdate next SYSDATE+2 //每隔两天更新一次,这里时间可以调配
WITH PRIMARY KEY
as
select jqno,jqchara,jqtime,bjtel,afaddr from case_lq where jqchara='牙刷' or jqchara='汽车' order by jqno desc建立好物化视图后,就可以直接对它进行操作。
select * from MyMview where rownum<11 速度将大大提高。