【问题标题】:how can you avoid a round trip time "once per row" for hibernate queries如何避免休眠查询的“每行一次”往返时间
【发布时间】:2013-06-26 22:58:46
【问题描述】:

似乎我有一个返回 1000 行的查询,hibernate 正在 forever 从查询的返回值创建一个列表。似乎休眠状态每行进行一次“往返”,就我而言,这需要很长时间。这可以避免吗?在我的特定实例中,这是一个 Oracle 数据库。查询只是 100 个序列 ID 的列表,例如 https://stackoverflow.com/a/8292557/32453

【问题讨论】:

    标签: hibernate


    【解决方案1】:

    似乎休眠允许设置“获取大小”,从而避免这种情况下的往返时间。

    ref:http://docs.jboss.org/hibernate/entitymanager/3.5/reference/en/html/objectstate.html 搜索“fetchSize”

    这是我最终在 hibernate.cfg.xml 文件中使用它的方式:

    <property name="hibernate.jdbc.fetch_size">10000</property>
    

    现在我的 1000 行查询的返回速度提高了大约 10 倍。好的。我猜默认是 1 的提取大小,每行都需要一个 RTT。

    【讨论】:

      猜你喜欢
      • 2018-05-06
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      • 2019-03-25
      • 1970-01-01
      • 2016-01-23
      • 1970-01-01
      • 2014-09-20
      相关资源
      最近更新 更多