2008年12月30日星期二

why sybase 分页查询慢

sybase版本12.*
原因Sybase不支持LIMIT语法


Hibernate Forums - View topic - Does Criteria_setMaxResults()_list() alter JDBC connection.htm
这篇贴子讲的很清楚
由于Sybase数据库不支持LIMIT SQL语法,Hibernate查询即使设定了setFirstResult setMaxResult也是 将所有的记录查出 然后使用游标滚动到分段处,越往后分页越查询越慢
SybaseDialect implementing setMaxResults - Hibernate JIRA.htmSybaseDialect.java.patch.txt
提出了在SybaseDialect.java中修改SET ROWCOUNT 的方法实现分页 的方法,不过在Hibernate官方最新的3.3.1.GA版本中并未采用,可能是有其他原因的。

参考资料
http://forums.hibernate.org/viewtopic.php?p=2300079&sid=0aa9c8501b183a9973800ad28d22bc51
http://www.javaeye.com/post/99209
http://opensource.atlassian.com/projects/hibernate/browse/HHH-2454

没有评论: