from Customer c inner join c.orders o group by c.age;(1)
select c.ID,c.name,c.age,o.ID,o.order_number,o.customer_ID
from Customer c inner join c.orders c group by c.age;(2)
这两条语句使用了HQL语句的内连接查询(我们将在HQL语句的连接查询部分专门讨论),现在我们可以看出这两条查询语句最后所返回的结果是一样的,但是它们其实是有明显区别的,语句(1)检索的结果会返回 Customer与Order持久化对象,而且它们会被置于Hibernate的Session缓存之中,并且Session会负责它们在缓存中的唯一性以及与后台数据库数据的同步,只有事务提交后它们才会从缓存中被清除;而语句(2)返回的是关系数据而并非是持久化对象,因此它们不会占用 Hibernate的Session缓存,只要在检索之后应用程序不在访问它们,它们所占用的内存就有可能被JVM的垃圾回收器回收,而且 Hibernate不会同步对它们的修改。
在我们的系统开发中,尤其是Mis系统,不可避免的要进行统计查询的开发,这类功能有两个特点:第一数据量大;第二一般情况下都是只读操作而不会涉及到对统计数据进行修改,那么如果采用第一种查询方式,必然会导致大量持久化对象位于Hibernate的Session缓存中,而且 Hibernate的Session缓存还要负责它们与数据库数据的同步。而如果采用第二种查询方式,显然就会提高查询性能,因为不需要 Hibernate的Session缓存的管理开销,而且只要应用程序不在使用这些数据,它们所占用的内存空间就会被回收释放。
因此在开发统计查询系统时,尽量使用通过select语句写出需要查询的属性的方式来返回关系数据,而避免使用第一种查询方式返回持久化对象(这种方式是在有修改需求时使用比较适合),这样可以提高运行效率并且减少内存消耗。㊣真正的高手并不是精通一切,而是精通在合适的场合使用合适的手段。
数据库量大时不用用“in”,否则速度超慢,而应该用left join之类的替换
分享到:
相关推荐
浅谈能源信息安全与风险控制【最新版】.docx浅谈能源信息安全与风险控制【最新版】.docx浅谈能源信息安全与风险控制【最新版】.docx浅谈能源信息安全与风险控制【最新版】.docx浅谈能源信息安全与风险控制【最新版】...
ERP\erp浅谈ERP\erp浅谈ERP\erp浅谈ERP\erp浅谈ERP\erp浅谈ERP\erp浅谈ERP\erp浅谈
注意力机制浅谈注意力机制及其作用浅谈注意力机制及其作用浅谈注意力机制及其作用浅谈注意力机制及其作用浅谈注意力机制及其作用浅谈注意力机制及其作用浅谈注意力机制及其作用浅谈注意力机制及其作用浅谈注意力机制...
浅谈文化政策与网络直播.pdf
浅谈智慧水利与河湖综合管理.pdf
浅谈三层交换机与路由器的区别.pdf
浅谈数据仓库建设中的数据建模方法浅谈数据仓库建设中的数据建模方法所谓水无定势兵无常法。不同的行业有不同行业的特点因此从业务角度看其相应的数据模型是千差万别的。目前业界较为主流的是数据仓库厂商主要是IB
浅谈计算机网络安全现状与防御技术.pdf
浅谈Java优势,关于java优势......
在讨论x86架构下的缓存(Cache Memory)时,首先我们需要理解什么是缓存以及它为何重要。缓存是一类快速存储设备,它位于处理器和主存(主内存)之间。缓存的主要功能是存储处理器经常使用的指令和数据。...
浅谈数控机床的维修与维护毕业论文.doc
浅谈搜索软件对网络安全的影响.pdf
浅谈办公局域网网络安全防护与管理.pdf
浅谈VFP中的SQL SELECT语句 本文主要介绍了VFP中的SQL SELECT语句的使用和实现方法。SELECT语句是SQL语言中最基本和最重要的一种语句,用于从数据库中查询数据。VFP中的SELECT语句可以实现简单查询、排序和分组查询...
浅谈3G技术.pdfpdf,浅谈3G技术.pdf
浅谈网络防火墙技术与应用
浅谈中小学生上网行为的监控与管理.doc
网络准入技术与上网行为管理技术的区别浅谈.doc
《安全常识-灾害防范》之浅谈幼儿园常见安全事故类型及处理办法.pdf
浅谈IPv6对网络安全的影响及在门户网站落地实践.pdf