优化报表查询的性能
来源:互联网 发布:linux less 查找 编辑:程序博客网 时间:2024/05/18 17:02
当select语句仅仅选择查询持久化类的部分属性时,Hibernate返回的查询结果为关系数据,而非持久化对象。例如:
from Customer c inner join c.orders o group by c.age
select c.id,c.name,c.age,o.id,o.order_number,o.customer_id from Customer c inner join c.orders o group by c.age
以上两条HQL 查询语句对应的SQL语句相同,因此能查询出数据库中相同的数据,区别在于前者返回的是Customer和
Order持久化对象,他们位于Session的缓存中,Session会保证他们的唯一性。后者返回的是关系数据,他们不会占用Session的缓存,
只要应用程序中没有任何变量应用这些数据,他们占用的内存就可以被JVM的垃圾回收器回收。
因此,采用第二种能提高查询性能,只要应用程序不再引用这些数据,他们占用的内存就会被释放。
对于第二中形式,可以定义一个JavaBean累包装查询结果中的关系数据,使应用程序仍能按照面向对象的方式来访问查询结果,例如:
select from new CustomerOrder(c.id,c.name,c.age,o.id,o.order_number,o.customer_id)
from Customer c inner join c.orders o group by c.age
CustomerOrder类不是持久化类,他的实例不会被加入到Session的缓存中。
- 优化报表查询的性能
- SAP报表的性能优化SAP报表的性能优化
- ABAP:SAP报表性能的优化
- ABAP:SAP报表性能的优化
- 皕杰报表的性能优化
- ABAP:SAP报表性能的优化
- MySQL查询的性能优化
- MySQL查询的性能优化
- MySQL查询的性能优化
- MySQL查询的性能优化
- MySQL查询的性能优化
- MySQL查询的性能优化
- MySQL查询的性能优化
- MySQL查询的性能优化
- MySQL查询的性能优化
- 子查询的性能优化
- MySQL查询的性能优化
- mongo查询的性能优化
- 编写Bug,Report Bug注意事项
- MVC与模板概念的理解
- CS与BS架构各自的结构及特点
- Expect
- 如何设定和获取javabean的属性值
- 优化报表查询的性能
- eclipse中JS中文乱码解决
- MD5与hash加密的方法概要收藏
- 关键字: mysql的 连接/联结(join)语法
- 从手机用户上网习惯看WAP网址导航的建设
- Another example of Expect
- Asp.Net 飞信接口测试
- Ext加载form
- Linux中文乱码问题解决方案