论坛首页 Java企业应用论坛

为何每次问到传统sql如何调优就没人回答?另附几则hibernate性能优化实践

浏览 59367 次
该帖已经被评为良好帖
作者 正文
   发表时间:2010-04-12  
gdpglc 写道
刃之舞 写道
gdpglc 写道
大家有没有用过ejb的,这东西在性能上应该没什么优势,为什么sun(oracle)还在发展它?现在有什么大型的东西是用ejb搞出来的吗?
之前讨论hibernate时,很多人说在大型项目里不能用 hibernate,要用原生sql才行。 如果这样ejb岂不更要靠边站了?

哥们,对你的无知不说什么了,你用过EJB吗?
就是在EJB2.0的时代,它的实体BEAN也是令人诟病的一个东西,也是很少人用这东西,用不用EJB跟原生SQL怎么扯上关系的,用EJB可以作为DDD的一种实现方式,你能了解吗?用EJB解决分布式你了解吗?
实在莫名其妙,用不用原生SQL变成了使用是否使用EJB的一个重要判断了,我真是。。。。。


1.哥们,对你的无知不说什么了,你用过EJB吗?
我的确没用过,所以才问。如果没用过哪个技术就说明这个人无知,恐怕这里所有人,都在这个范围之内。

2就是在EJB2.0的时代,它的实体BEAN也是令人诟病的一个东西,也是很少人用这东西
这个我听说过,但是现在EJB3.0也出来了,它并没有消失是吧。如果ejb真的用在了 只有用原生sql才能开发的场合,那说明什么呢? ejb2.0的实体bean和ejb3.0的JPA都不是原生sql吧,你能明白我想说明什么吧?
所以ejb能不能用在 大型软件 对我们是有很大启示的是不是?

3.我说的问题和DDD无关

4.ejb解不解决分布式和我想说明的也无关。用原生sql就不能做分布式了?

5.如果用原生的sql,ejb提供的持久化功能有什么用呢?你说用不用ejb和用原生sql有没有关?


唉,你还真是。。。

1.人家没用过,没像你发表说EJB靠边站的大论
2.持久化不是EJB的主要功能,3.0完全颠覆以前的实体bean的实现,采用pojo,jpa方面可以灵活配置使用第三方jpa框架,不过还是那句话,EJB的主功能不是持久化,明白吗?你根本一点都不了解EJB,就别拿EJB说事,拿你自己了解的东西说,不过看你说这些估计你入行不久,如果入行已经2年以上了,还说这种话,我觉得你还真是好好反省了。
后面还是告诉你EJB解决的问题领域重点不是持久化,EJB跟hibernate所处的层次不在一个档次上。
发现我也傻了,跟你一逻辑混乱的人解释什么啊,唉。
0 请登录后投票
   发表时间:2010-04-12   最后修改:2010-04-13
刃之舞 写道
gdpglc 写道
刃之舞 写道
gdpglc 写道
大家有没有用过ejb的,这东西在性能上应该没什么优势,为什么sun(oracle)还在发展它?现在有什么大型的东西是用ejb搞出来的吗?
之前讨论hibernate时,很多人说在大型项目里不能用 hibernate,要用原生sql才行。 如果这样ejb岂不更要靠边站了?

哥们,对你的无知不说什么了,你用过EJB吗?
就是在EJB2.0的时代,它的实体BEAN也是令人诟病的一个东西,也是很少人用这东西,用不用EJB跟原生SQL怎么扯上关系的,用EJB可以作为DDD的一种实现方式,你能了解吗?用EJB解决分布式你了解吗?
实在莫名其妙,用不用原生SQL变成了使用是否使用EJB的一个重要判断了,我真是。。。。。


1.哥们,对你的无知不说什么了,你用过EJB吗?
我的确没用过,所以才问。如果没用过哪个技术就说明这个人无知,恐怕这里所有人,都在这个范围之内。

2就是在EJB2.0的时代,它的实体BEAN也是令人诟病的一个东西,也是很少人用这东西
这个我听说过,但是现在EJB3.0也出来了,它并没有消失是吧。如果ejb真的用在了 只有用原生sql才能开发的场合,那说明什么呢? ejb2.0的实体bean和ejb3.0的JPA都不是原生sql吧,你能明白我想说明什么吧?
所以ejb能不能用在 大型软件 对我们是有很大启示的是不是?

3.我说的问题和DDD无关

4.ejb解不解决分布式和我想说明的也无关。用原生sql就不能做分布式了?

5.如果用原生的sql,ejb提供的持久化功能有什么用呢?你说用不用ejb和用原生sql有没有关?


唉,你还真是。。。

1.人家没用过,没像你发表说EJB靠边站的大论
2.持久化不是EJB的主要功能,3.0完全颠覆以前的实体bean的实现,采用pojo,jpa方面可以灵活配置使用第三方jpa框架,不过还是那句话,EJB的主功能不是持久化,明白吗?你根本一点都不了解EJB,就别拿EJB说事,拿你自己了解的东西说,不过看你说这些估计你入行不久,如果入行已经2年以上了,还说这种话,我觉得你还真是好好反省了。
后面还是告诉你EJB解决的问题领域重点不是持久化,EJB跟hibernate所处的层次不在一个档次上。
发现我也傻了,跟你一逻辑混乱的人解释什么啊,唉。

1.我是在提问不是下结论。下结论的恐怕是你。我也不太爱甩名词,说几个名词容易,可要真正理解就很难。
2.你的意思是,ejb的重点是在领域上,而且这个领域可以超脱持久化而独立生存!也就是说,用EJB不用考虑持久化的事是吧?

最重要的是你要能回答我的问题,只说几个大而空的名词,用它来进行指责没有意义。

我换个问法也许你就明白了, EJB在使用时它的持久化部分应该不是直接使用原生SQL的,那应该如何理解EJB的持久化层和原生SQL以及Hibernate的效率关系呢?
0 请登录后投票
   发表时间:2010-04-13  
怎么不是SQL,无非是如何生成罢了。
特别是JBoss的EJB3 EB后面用的就是Hibernate,Oracle的EJB3 EB用的是TopLink也差不多。

不过EJB的考虑出发点确实不是持久化,这没啥疑问吧。
0 请登录后投票
   发表时间:2010-04-22  
flootball 写道
还在考虑Hibernate性能啊!
现在都考虑直接走磁盘了。这样可以去掉日志,锁,认证, 索引文件可以大大的减少。


现在流行走CPU Cache,直接跳过磁盘访问、内存访问
0 请登录后投票
   发表时间:2010-05-17  
很多人都想用hibernate完成所有工作,而自己只是写下配置文件,然后就好了,做出来的东西不行就完全是hibernate的问题,是hibernate做的不好,从来不去自己想想怎么扩展功能,优化自己的开发
0 请登录后投票
   发表时间:2010-07-07  
firebody 写道
seele 写道
SQL需要关联10张表,每张表有1000万数据以上。。最少。。需要进行复杂的查询。需要用多很多ORACLE特有的函数..写完的SQL在100行以上。。

不认为hibernate能够适合这样的环境



这个复杂的统计查询需求你就用SQL查询好了,难道你不知道hibernate也有SQLQuery吗?


这种做发背离了Hibernate设计的初衷。
0 请登录后投票
   发表时间:2010-07-07  
谁能证明hibernate比JDBC快?现在JAVA不比C慢,请见:http://www.jdon.com/jivejdon/thread/37032

我觉得比较,就要去测试,而且要公平。
hibernate与jdbc+cache做比较比较公平,另外别搞什么服务器了,就是整个几个台式机或者笔记本,找个数据库服务器,百万级的数据量就行,这种环境才能有公正的测试结果。


0 请登录后投票
   发表时间:2010-07-07  
yuhonglei4025 写道
firebody 写道
seele 写道
SQL需要关联10张表,每张表有1000万数据以上。。最少。。需要进行复杂的查询。需要用多很多ORACLE特有的函数..写完的SQL在100行以上。。

不认为hibernate能够适合这样的环境



这个复杂的统计查询需求你就用SQL查询好了,难道你不知道hibernate也有SQLQuery吗?


这种做发背离了Hibernate设计的初衷

我们的初衷是开发出可用,好用的系统。而不是什么乱七八糟的某某框架的初衷
0 请登录后投票
   发表时间:2010-07-08   最后修改:2010-07-08
ibaties
也不错
0 请登录后投票
   发表时间:2010-07-08  
抛出异常的爱 写道
因为大家都认为
hibernate是个ORM框架
但是它不是.

0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics