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