日期:2014-05-20  浏览次数:20744 次

真的是郁闷`谁能帮下啊`急死人了
有个表有几亿条数据!

使用jdbc的时候 1秒就可以查询出来 
使用hibernate 25秒左右才能查出来``

但在hibernate.xml文件中把
XML code
<property name="show_sql">true</property>
打开
出来的sql语句放plsql中查结果速度也很快
SQL code
Hibernate: select * from ( select t.SCAN_DATE as SCAN1_0_, t.SCAN_SITE as SCAN2_0_, t.BILL_CODE as BILL3_0_, t.LISTING_CODE as LISTING4_26_0_, t.SUB_BILL_CODE as SUB5_26_0_, t.TRANSFERE_BILL_CODE as TRANSFERE6_26_0_, t.OWNER_BAG_NO as OWNER7_26_0_, t.SCAN_TYPE as SCAN8_26_0_, t.PRE_OR_NEXT_STATION as PRE9_26_0_, t.SCAN_MAN as SCAN10_26_0_, t.REGISTER_DATE as REGISTER11_26_0_, t.DISPATCH_OR_SEND_MAN as DISPATCH12_26_0_, t.CUSTOMER_NAME as CUSTOMER13_26_0_, t.SEND_SITE as SEND14_26_0_, t.MIDDLE_TRANSFER_CENTER as MIDDLE15_26_0_, t.PIECE as PIECE26_0_, t.WEIGHT as WEIGHT26_0_, t.GOODS_TYPE as GOODS18_26_0_, t.FAST_TYPE as FAST19_26_0_, t.CLASS as CLASS26_0_, t.TRANSFER_OR_DISPATCH_FEE as TRANSFER21_26_0_, t.NET_MANAGE_FEE as NET22_26_0_, t.OTHER_FEE as OTHER23_26_0_, t.BL_CHECKING_ID as BL24_26_0_, t.BL_BALANCE_ID as BL25_26_0_, t.BL_RETURN_BILL_ID as BL26_26_0_, t.BL_UNTREAD_PIECE_ID as BL27_26_0_, t.BL_ELECTRON_ID as BL28_26_0_, t.BL_NO_INPUT_BILL_ID as BL29_26_0_, t.BL_RETURN_WRITE_ID as BL30_26_0_, t.BL_LOCK_ID as BL31_26_0_, t.MODIFIER as MODIFIER26_0_, t.MODIFY_DATE as MODIFY33_26_0_, t.DESTINATION as DESTINA34_26_0_, t.DISPATCH_SITE as DISPATCH35_26_0_, t.REMARK as REMARK26_0_, t.SCAN_MAN_CODE as SCAN37_26_0_, t.MODIFIER_CODE as MODIFIER38_26_0_, t.MODIFY_SITE as MODIFY39_26_0_, t.OTHER_FEE1 as OTHER40_26_0_, t.OTHER_FEE2 as OTHER41_26_0_, t.OTHER_FEE3 as OTHER42_26_0_ from tab_scan_come t where t.scan_date between ? and ? and t.scan_type=? and t.scan_site=? ) where rownum <= ?


把这个sql写到jdbc中数据也很快!

真是郁闷了``帮忙看看```


------解决方案--------------------
我觉得要将 Hibernate 用在大数据量的应用上,需要非常高的水平才能做得到。

如果减少查询结果,hibernate 是不是出来的快些。如果是的话,就说明在包装查询结果的过程中花了一些时间。

或者试试看用 Hibernate 直接执行这个 SQL 而不是让其自动生成,会不会快些。
------解决方案--------------------
@.@
------解决方案--------------------
是hb的转换慢了,JDBC查出来的原始数据类型。而hb要把原始数据一行一行封装成对象,应该是这个过程慢了。

简单说数据查询到JVM内存中以后慢了
------解决方案--------------------
查查细节的地方看看
------解决方案--------------------
Hibernate本身的问题
还是用JDBC吧。。。
------解决方案--------------------
建议直接使用JDBC,可以从SQL的书写,以及建立索引方面来解决效率问题
------解决方案--------------------
帮忙顶!
------解决方案--------------------
我觉得要将 Hibernate 用在大数据量的应用上,需要非常高的水平才能做得到。 

如果减少查询结果,hibernate 是不是出来的快些。如果是的话,就说明在包装查询结果的过程中花了一些时间。 

或者试试看用 Hibernate 直接执行这个 SQL 而不是让其自动生成,会不会快些。

------解决方案--------------------
探讨
引用:
我觉得要将 Hibernate 用在大数据量的应用上,需要非常高的水平才能做得到。

如果减少查询结果,hibernate 是不是出来的快些。如果是的话,就说明在包装查询结果的过程中花了一些时间。

或者试试看用 Hibernate 直接执行这个 SQL 而不是让其自动生成,会不会快些。


我使用的是session.createSQLQuery接口```