Oracle数据库order by排序查询分页比不分页还慢问题解决办法
2014-12-20 20:18
393 查看
简单说下问题,有一个JDBC的查询SQL,分页查询语句中有一个排序order by create_time,理论上来说JDBC查询已经是比较底层的技术了,没有像Hibernate、MyBatis那样又对JDBC进行了封装,效率肯定是最好的,可谁想,3w多条数据,竟然慢的要死,经常抛出超时异常
遇到问题之后,首先在网上搜罗资料
关于Oracle排序的:http://blog.sina.com.cn/s/blog_8604ca230100vro9.html
也找到一个排序分页很慢的帖子:http://www.itpub.net/thread-1179246-1-1.html,好几年前的了,最终也没结贴
网上提到的各种解决办法,要么先分析SQL执行效率,要么建索引,但是根据经验来判断,一共就3w来条数据,怎么就会慢呢
仔细看了数据库中的数据,发现一个明显的问题,排序的字段create_time竟然有2w多条数据都是null值,终于找到原因了,没错,原因就是因为排序字段是相同的null值,分页之后查询就会很慢
找到原因,解决办法就简单了,把排序字段的null值赋值为流水时间即可~
遇到问题之后,首先在网上搜罗资料
关于Oracle排序的:http://blog.sina.com.cn/s/blog_8604ca230100vro9.html
也找到一个排序分页很慢的帖子:http://www.itpub.net/thread-1179246-1-1.html,好几年前的了,最终也没结贴
网上提到的各种解决办法,要么先分析SQL执行效率,要么建索引,但是根据经验来判断,一共就3w来条数据,怎么就会慢呢
仔细看了数据库中的数据,发现一个明显的问题,排序的字段create_time竟然有2w多条数据都是null值,终于找到原因了,没错,原因就是因为排序字段是相同的null值,分页之后查询就会很慢
找到原因,解决办法就简单了,把排序字段的null值赋值为流水时间即可~
相关文章推荐
- Oracle数据库order by排序查询分页比不分页还慢问题解决办法
- Oracle数据库中分页查询中排序及效率问题
- MYSQL、SQL Server、Oracle数据库排序空值null问题及其解决办法
- 用视图+存储过程解决复杂查询的排序分页问题
- Mysql联合查询UNION和Order by同时使用报错问题的解决办法
- MYSQL、SQL Server、Oracle数据库排序空值null问题及其解决办法
- SQL Server、Oracle数据库排序空值null问题解决办法
- MYSQL、SQL Server、Oracle数据库排序空值null问题及其解决办法
- SQL Server、Oracle数据库排序空值null问题解决办法(转)
- MYSQL、SQL Server、Oracle数据库排序空值null问题及其解决办法
- Mysql联合查询UNION和Order by同时使用报错问题的解决办法
- 解决使用HIBERNATE对ORACLE数据库中数据进行排序分页错乱的问题
- 用视图+存储过程解决复杂查询的排序分页问题
- 【转】解决Oracle分页查询中排序与效率问题
- MYSQL、SQL Server、Oracle数据库排序空值null问题及其解决办法
- sqlserver、oracle数据库排序空值null问题解决办法
- MySQL、SQL Server、Oracle数据库排序空值null问题及其解决办法
- Oracle分页查询中排序与效率问题解决方法详解
- 大数量查询分页显示微软的解决办法
- Winform datagridview 大数量查询分页显示 微软的解决办法(修改版)