hibernate的关联与单独Sql的效率问题

问题描述

我想请教下各位前辈: 在用hibernate的一对多,多对一时,与单独写sql语句进行对表的操作,那种效率更高,当然我们假象sql是很优化的语句甚至是调用存储过程,那一种更好,为什么?拜赐教

解决方案

个人相信 SQL 效率更高!原因:Hibernate HQL 用起来是很爽!但是是基于sql的 !sql才是真理!(现在还有NOsql 等没关系的数据库也有很多人使用了)hibernate 他封装,包装了SQL 使程序员使用起来更好理解更好使用了!同时也会带来其他问题!面向对象了嘛!存储过程或者函数效率可能更高!就像java调用 jdk自带的 函数一样!

时间: 2024-11-02 06:24:02

hibernate的关联与单独Sql的效率问题的相关文章

在导出excel时Hibernate产生的SQL的效率问题

问题描述 我在导出2000条记录的excel时,Hibernate产生了2001条SQL....郁闷.我要导出系统中所有的User,该User关联了机构表UserOrg.我要导出的字段有:User.name 和 UserOrg.name.于是Hibernate先用一条Sql取出2000个User,然后产生了2000条语句去取UserOrg....User与Userorg是多对一的关系.感觉这样是不是效率方面很有问题...请问大家有什么好方法吗? 问题补充:<div class="quote

用jamon来监控你的sql执行效率

/** *作者:张荣华 *日期:2008-2-25 **/ 之前有一篇文章讲到如何使用jamon来监控请求以及方法得调用(原文地址见:[url]http://www.iteye.com/post/354575 [/url]),本文属于其姊妹篇,使用jamon监控系统的sql调用及其调用效率. 需求: 1我们知道在使用hibernate得时候,我们可以打开show sql选项,可以直接查看sql语句调用的情况,那么当我们使用其他持久技术的时候我们也需要这个功能怎么办呢,没有关系,jamon能够帮我

mybatis-Mybatis关联对象查询,如何提高效率

问题描述 Mybatis关联对象查询,如何提高效率 这种方式关联对象查询时会产生一条查询的sql,对效率有一定的影响 < association property="user" column="userId" select="select" /> 如何避免这种方式,且对象有值? 解决方案 Mybatis的关联,还有循环啥的,不要用,性能太差.

mysql 多表关联更新/删除sql语句

1.mysql 多表关联delete中使用别名,tblwenhq是真实的表名,a是tblwenhq的别名,b是另一个表名  代码如下 复制代码 DELETE  a FROM tblwenhq a,b where a.id=b.id 2.使用mysql进行delete from操作时,若子查询的 FROM 字句和更新/删除对象使用同一张表,会出现错误. DELETE FROM tab1 WHERE col1 = ( SELECT MAX( col1 ) FROM tab1 ); ERROR 109

SQL教程:提高SQL执行效率的几点建议

提高SQL执行效率的几点建议: ◆尽量不要在where中包含子查询; 关于时间的查询,尽量不要写成:where to_char(dif_date,'yyyy-mm-dd')=to_char('2007-07-01','yyyy-mm-dd'); ◆在过滤条件中,可以过滤掉最大数量记录的条件必须放在where子句的末尾; FROM子句中写在最后的表(基础表,driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表.如果有三个以上的连接查询,

提高SQL执行效率的几点建议

提高SQL执行效率的几点建议: 尽量不要在where中包含子查询; 关于时间的查询,尽量不要写成:where to_char(dif_date,'yyyy-mm-dd')=to_char('2007-07-01','yyyy-mm-dd'); 在过滤条件中,可以过滤掉最大数量记录的条件必须放在where子句的末尾; FROM子句中写在最后的表(基础表,driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表.如果有三个以上的连接查询,那就

Oracle提高sql执行效率的心得建议

sql执行效率一直都是为人所关注,那到底应该怎样提高呢?有什么比较好的方法,下面与大家分享下比较不错的建议,感兴趣的朋友可以参考下,希望对大家有所帮助 复制代码 代码如下: -->FROM子句中包含多个表的情况下,选择记录条数最少的表作为基础表 -->解析WHERE子句是自下而上的 过滤条件要有顺序 -->ORACLE会将'*'转换成列名 -->DELETE会在rollback segment中存放可恢复信息,可以试试TRUNCATE -->COMMIT会释放:1.rollb

sql-问题中的这两种SQL哪个效率高?

问题描述 问题中的这两种SQL哪个效率高? SELECT T3.IDT3.NAMEFROM ZY_UNIT_WARD T1 LEFT JOIN XT_UNIT T2 ON T1.UNITID=T2.IDLEFT JOIN zy_ward T3 ON T2.ID=T3.UNITIDWHERE T2.ID=8SELECT T1.IDT1.NAME FROM zy_ward T1XT_UNIT T2ZY_UNIT_WARD T3WHERE T1.ID=T3.WARDID AND T2.ID=T3.UN

criteria-请问Hibernate中CriteriaQuery可以使用原生sql作为排序条件么

问题描述 请问Hibernate中CriteriaQuery可以使用原生sql作为排序条件么 请问Hibernate中Criteria Query可以使用原生sql作为排序条件么? 正常情况下是 addOrder(Order.desc("column")); 希望order by nvl(column,'xxxx') desc 类似Hibernate 的条件查询就支持原生sql. 请问排序支持么?我搜索了一下,没有找到类似的api. 当然我使用hql就可以了,但是我前提已经使用了Cri