读书人

hibernate性能优化(剔除相关)

发布时间: 2012-10-11 10:16:10 作者: rapoo

hibernate性能优化(删除相关)
软件的性能问题很重要,而大多数性能问题都是持久化造成的,hibernate作为一个orm框架,使用不好的话会带来严重的性能问题,本文记录一些自己知道了解的一些优化手段,将长期关注hibernate优化相关的问题,不断进行添加,希望自己能够坚持!

一:删除的优化
1、 一般说来,我们在利用hibernate删除单个对象时时这样做的:

Student stu = session.load(Student.class,id);session.delete(stu);
在load的时候并没有sql语句发出,可是执行delete的时候会发出两条sql语句,一句为查询语句,一句为删除语句。在明确知道要删除对象的id时我们可以这么来做:
Student stu = new Student();stu.setId(id);session.delete(stu);
这个时候观察console输出可以发现只有一条删除语句发出。比较这两种不同的方式,从代码量来说差别不大,甚至第二种还要精炼一点,达到的效果是一样的,都是根据id来删除指定对象,显然第二种方式发出的sql语句少,我认为这就是优化,虽然对性能提升不大,但能少发sql语句还是有好处的吧。
2、批量删除数据
自己并没有亲自做过测试,据说时间消费跟jdbc操作是在同一个级别的
Query query = session.createQuery("delete Student where id > 100");query.executeUpdate();

读书人网 >软件架构设计

热点推荐