我在用hibernate做分页的时候,
从10到100条记录的分页sql如下:
SELECT *
FROM (SELECT row_.*, ROWNUM rownum_
FROM (SELECT users.id,users.name
FROM my.users users0_) row_)
WHERE rownum_ <= 100 AND rownum_ > 10
我很失望,对hibernate 。
因为性能优良的sql应该是:
SELECT *
FROM (SELECT row_.*, ROWNUM rownum_
FROM (SELECT users.id,users.name
FROM my.users users0_) row_ where rownum <= 100 )
WHERE rownum_ > 10。
具体两个sql的比较可以去 asktom.oracle.com上面看,性能差距不是一点半点。
难道hibernate不行?
原来是我
改为Oracle9Dialect 以后就一切ok了,看来Hibernate还是很有进步吗,呵呵。
从10到100条记录的分页sql如下:
SELECT *
FROM (SELECT row_.*, ROWNUM rownum_
FROM (SELECT users.id,users.name
FROM my.users users0_) row_)
WHERE rownum_ <= 100 AND rownum_ > 10
我很失望,对hibernate 。
因为性能优良的sql应该是:
SELECT *
FROM (SELECT row_.*, ROWNUM rownum_
FROM (SELECT users.id,users.name
FROM my.users users0_) row_ where rownum <= 100 )
WHERE rownum_ > 10。
具体两个sql的比较可以去 asktom.oracle.com上面看,性能差距不是一点半点。
难道hibernate不行?
原来是我
org.hibernate.dialect用的是OracleDialect
改为Oracle9Dialect 以后就一切ok了,看来Hibernate还是很有进步吗,呵呵。