Oracle中慎用带有order by的分页
来源:互联网 发布:中控考勤机 php接口 编辑:程序博客网 时间:2024/04/29 10:55
select * from
( select row_.*, rownum rownum_ from
( select * from T_TABLE tTable where tTable.field1 order by tTable.field2 desc ) row_ where rownum <= ?) where rownum_ > ?;
如果这里的sql是不带order by的sql,则查询结果没有任何问题。
但是,如果sql中带有order by,则会引起混乱,即相同记录会出现在不同页中。但是,这种混乱的出现通常是在下面的情况下:
1、纪录数足够多(如果表中有lob字段更好:P)
2、插入记录数大于3页,每页最好10+条记录
3、order by字段至少需要有2个值
4、具备相同order by字段的记录数大于3页
5、插入记录后,最好做删除、修改操作,然后再插入记录。保证记录在磁盘环境中的顺序是无序的。
6、如果满足上述条件,但还没有出现混乱现象,则适当的加大纪录数。
大家测试这种现象,不需要通过hibernate,直接通过sql就可查到。下面有由hibernate生成的sql,以供大家试验:
- Oracle中慎用带有order by的分页
- Oracle中慎用带有order by的分页
- oracle中慎用带有order by的分页(转载自javaeye论坛)
- oracle中带order by 的分页问题
- oracle分页与order by 的关系
- oracle rownum order by 分页
- oracle 分页 order by 问题
- Oracle rownum order by 分页
- ORACLE中order by造成分页不正确原因分析
- oracle 中group by和 order by的区别
- Oracle中的rownum、order by与分页
- oracle 分页 rownum 和 order by
- ORACLE: rownum、order by、分页 初步研究
- oracle中的rownum、order by与分页
- Oracle中的order by分页排序问题
- oracle中的rownum、order by与分页
- oracle中的rownum、order by与分页
- Hibernate、oracle分页、order by问题
- ListView 使某一行不可用的方法
- 开源压缩软件
- 动态把一个databale复制到另一个databale
- WFDB库命令整理
- mysql存储过程之创建存储过程
- Oracle中慎用带有order by的分页
- 网站架构不得不谨慎的10个问题
- 关于网络小说之我见
- Dojo树使用心得
- Tmp
- OGRE EXCEPTION(3:RenderingAPIException): Zero sized texture surface on texture
- 学生信息管理系统总结
- 附加数据库对于服务器失败(Microsoft.SqlServer.Smo),无法升级数据库,因为它是只读的,或者具有只读文件
- alter table move跟shrink space的区别