Hibernate 在SQLServer2000环境下分页存在的问题

在 Oracle环境下,Hibernate的分页机制是效率最高的,使用Oracle内置的rownum来分页,每次只是取出显示时候必须的数据即可,即从第N条到第N+m条记录。
在SQLServer2000环境下,他的分页机制存在问题,通过跟踪Hibernate打印出的语句发现,每次分页的时候,Hibernate会把从第1条到第N+m条的数据全部取出来,然后在取出的数据做程序处理,返回给调用者的数据是经过 Hibernate处理后的,而不是放在数据库处理的。例如:取第5条到第10条记录,Hibernate会从数据库把第1条到第10条记录取出来,然后把里面的5到10条记录用List处理后返回给调用者,导致分页的时候,越往后翻页,效率越低。

大家有发现的吗?

MSSQL没有ORACLE或MYSQL类型的ROWNUM或LIMIT关键字.MSSQL分页就是这样的,使用TOP来分页是MSSQL效率较高的方案了.这是MSSQL自己的问题

我后来查了很多资料,的却是这样。

开始是微软自己把 市场定位成只能做小型应用的~

或者说 oracle的rownum是微软那些工程师无法实现的?居然也有微软实现不料的技术,mysql在这点的技术都实现了.

楼上的
mssql是跟sybase合作共同开发的
所以一开始设计根本就不是为了中小型应用
而且也没有那个DBMS是为了中小型应用而做的

rownum只是oracle的一个实现方法
db2也没有,难道也要说db2也是为了中小应用??