站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2EE 专题Hibernate的性能和存储过程问题

Hibernate的性能和存储过程问题

摘要: Hibernate的性能和存储过程问题


要通过hibernate来操作SqlServer2000

一次操作要修改3个表,表A要修改5000条记录,表B要添加5000条记录,表C要修改5000条记录。这样一次操作现在要花费数分钟的时间。是不是正常呢?有什么办法可以提高效率呢?


想使用存储过程来操作,不知道如果用存储过程还支不支持事务回滚呢?


存储过程支持事务处理。

hibernate操作大数据量是这样的,建议你在页面做个等待的div。


象这种批量操作,最好不要用HIB来直接实现。
还是用JDBC自己搞安逸


我这个不是bs构架,技术实现是Servlet+hibernate,普通数据库操作都比较小,只需要改几条记录就可以了。但个别操作数据量非常大。
用hibernate实现是为了结构清晰,而且事务处理方便。但大数据量的操作怎么会这么慢,从业务需求上来讲,上面的操作要在10s内完成,现在要好几分钟甚至10分钟都不见得能完成。

用存储过程的话,事务回滚不会有问题吧。

还要什么办法可以提高效率呢


数据库函数或过程去实现吧

HIBERNATE3。0支持调用的

如果是批量执行 也就3次 总共1W多条 数据量不大


都告诉你了“象这种批量操作,最好不要用HIB来直接实现。还是用JDBC自己搞”

不要有了车子就忘记走路!




象这种批量操作,最好不要用HIB来直接实现。还是用JDBC自己搞

对不起,我对hibernate的性能不是很了解
因为整个构架是用hibernate来做的,所以当初没有想到用jdbc来处理一部分。这样做性能会不会提高很多呢?我最担心的问题是事务处理。因为这个批量操作如果中间一步失败对我的系统来说是致命的,用存储过程会不会影响事务自动回滚?jdbc自己实现,事务回滚会存在问题吗


小弟在数据库上的知识肤浅,为了不在项目上冒险,只能在这里问一些自己担心的问题。各位大哥有劳了


fool_leave() :
你现在有2个比较好的选择
1、如果需要的参数不多,可以用数据库的存储过程来实现,请注意,请在一个存储过程中搞定3个表的操作,如果不行就回滚,如果行就COMMIT。 我说的“参数”就是那些可以支持你在一次调用中搞定所有操作参数。
2、如果参数太多,那么就用JDBC来实现,用batch update功能!这样效率也很搞的!


谢谢,我试试看


↑返回目录
前一篇: 将javabean存入session会不会占很多资源.
后一篇: 笔试题,搞不懂!!!