本人项目中遇到如下问题:oracle中查询一个3000万记录的表tbl_test,查询约进行了5分钟,即触发了ora-01555错误,导致查询失败。环境:
1、oracle 11g
2、查询前,磁盘IO占用率已很高,达95%以上。
3、CPU 8核SQL语句:
select /* +parallel(tbl_test,3)*/ sid from tbl_test;疑问:有什么方法可以优化该SQL语句,缩短其查询速度?多谢!
1、oracle 11g
2、查询前,磁盘IO占用率已很高,达95%以上。
3、CPU 8核SQL语句:
select /* +parallel(tbl_test,3)*/ sid from tbl_test;疑问:有什么方法可以优化该SQL语句,缩短其查询速度?多谢!
如果表大的话,查询频繁的话最好做分区,会解决查询效率问题。
还有一个办法就是存入临时表中在临时表查询效率会更高一下。
解决方法有几个
1、增加undo
2、减少undo 保留时间
3、减少查询的规模,可采用分区技术,看看执行计划,全表扫的话谁也扛不住啊