我的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语句才能提高速度。
解决方案 »
- 求达人推荐--分布式数据同步原理的书籍
- 请教数据库关联问题
- 用户sys跟system有什么区别?sys的默认密码是admin吗?
- 复制记录问题。
- 用命令exp和imp执行oracle数据库导出导入时总是出现EXP-00056:遇到ORACLE错误12560 ORA-12560:TNS:协议适配器错误 EXP-000000
- 存储函数问题
- 高手请指教:ora-00984.列不允许。是什么问题。(在线等待)
- 正在做程序数据库平台转换,请大家推荐下载数据库书籍的网站,最好有以下书籍:
- 绝顶高手请进,先给这些,成事后开新贴加300,还不够再加
- 如何装 ORACLE9i, ?????
- job执行时间过长导致下次执行时间推迟
- 我怎么知道一个表是不是被锁了?
改成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 速度将大大提高。