浏览 5407 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-09-21
两个表的数据量均为百万级 执行这条语句 select count(*) from OFMS_DUN_BILL b, OFMS_DUN_SERV s where s.SERV_ID=b.SERV_ID 返回的结果为 1百万条 select * from( select rows_.*, rownum rownum_ from ( select b.ID B_ID, s.SERV_ID S_SERV_ID from OFMS_DUN_BILL b, OFMS_DUN_SERV s where s.SERV_ID=b.SERV_ID and rownum<=20 )rows_ )where rownum_ >0 情形一 分别用 ibatis 和 Spring 的 MappingSqlQuery 执行上面sql语句(oracle分页语句), ibatis 需要十几秒,MappingSqlQuery需要0.1秒 ibatis 执行期间 oracle数据库服务器的cpu占用率一直保持在50%左右 (CPU 1G奔3,内存1G,只装oracle) 情形二 如果在子查询的where语句后面限定 and s.SERV_ID<somevalue 限制子查询总记录数在40条内 用ibatis则只需要0.1秒 问题:情形一中 ibatis 和S pring 的 MappingSqlQuery 的性能差别这么大, 请分析可能是什么造成的,谢谢! 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-09-21
你是怎么测试的? 把你的测试方法写出来看看
|
|
返回顶楼 | |
发表时间:2007-09-21
IBATIS 查询配置
<select id="findBillWidthPage"> ... the test sql ... </select> IBATIS DAO 代码 public class BillDao extends org.springframework.orm.ibatis.support.SqlMapClientDaoSupport{ public List findBills(){ Map args = new HashMap(); List bills = super.getSqlMapClientTemplate().queryForList("findBillWidthPage", args); return bills; } } MappingSqlQuery DAO 代码 public class BillDao extends org.springframework.jdbc.core.support.JdbcDaoSupport{ public List findBills(){ String sql = ...; SqlQuery qry = new MappingSqlQuery(this.getDataSource(),sql){ protected Object mapRow(ResultSet rs, int rownum) throws SQLException { String str = rs.getString(1); logger.info(str); return str; } }; return qry.execute(); } } |
|
返回顶楼 | |
发表时间:2007-09-21
换连接池..............
|
|
返回顶楼 | |
发表时间:2007-09-21
ddandyy 写道 换连接池..............
应该是数据库连接花的时间不一样。 |
|
返回顶楼 | |
发表时间:2007-09-21
andyao 写道 ddandyy 写道 换连接池..............
应该是数据库连接花的时间不一样。 |
|
返回顶楼 | |
发表时间:2007-09-22
清理了一下多余的jar包,重新配置了一遍,问题就解决了
可能是包冲突也可能是配置错误造成的,谢谢各位啦:) 还有,上面的分页语句是错的,正确的应该是: select * from( select rows_.*, rownum rownum_ from ( select b.ID B_ID, s.SERV_ID S_SERV_ID from OFMS_DUN_BILL b, OFMS_DUN_SERV s where s.SERV_ID=b.SERV_ID )rows_ where rownum<=20 )where rownum_ >0 |
|
返回顶楼 | |
发表时间:2007-09-23
把你做的详细写一下吧!这么差这么多了!
|
|
返回顶楼 | |
发表时间:2007-09-24
为什么分页不排序呢
|
|
返回顶楼 | |