【问题标题】:Sybase Jconnect Driver - What is default fetch size and if increasing fetch size can benefit meSybase Jconnect 驱动程序 - 什么是默认提取大小以及增加提取大小是否可以使我受益
【发布时间】:2012-03-08 08:24:55
【问题描述】:

我正在使用 Sybase Jconnect Driver Jconn3 来执行存储的过程,它返回多达一百万行数据。我从这里和那里了解到,使用更大的获取大小可以改善获取所有数据的时间。

  • 但是我不知道 Sybase Jconnect 驱动程序的默认提取大小是多少。您能否帮助了解 sybase 使用的默认提取大小。
  • 鉴于我有足够的内存/cpu 资源来处理 百万资源在一起,是否建议将 fetchSize 设置为 一切?

【问题讨论】:

    标签: sql database query-optimization sybase


    【解决方案1】:

    Fetch Size 设置从服务器返回的块中的行数。它通常设置为 0,这意味着一次返回所有行。如果您有足够的记忆力一次接受 1,000,000 行,那么您可以不做设置。

    如果你想检查它,只需在语句对象上调用 getFetchSize()。 (您可能需要将对象转换为 SybStatement 才能执行此操作。)

    【讨论】:

    • 返回所有行”是 Sybase 的事情吗?因为 fetchSize 为 0 肯定不会为 Oracle 一次获取所有行。
    • 是的。获取大小由供应商确定。对于 Sybase JConnect,获取大小为 0 表示“全部发送”。对于我设计的大多数 Web 系统,我将获取大小设置为屏幕上行数的某个倍数。我发现接收我永远不会处理的数据没有任何价值。
    • 我不想重复这个问题,所以.. 这是我的。当我为 Jconnect (Sybase) 设置 fetcSize 时,应用程序 ResultSet 只返回一行但有一百万条记录
    【解决方案2】:

    经过研究,我发现 Sybase 的 JDBC 驱动程序确实支持流。您可以 setFetchSize() 来限制一次保存在内存中的数据量。如果将值设置为 0,它会将整个数据集加载到内存中。

    http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc39001.0605/html/prjdbc/X11994.htm

    【讨论】:

    • 所以如果使用SybCursorResultSet,它支持流。
    猜你喜欢
    • 1970-01-01
    • 2014-02-20
    • 2022-06-20
    • 1970-01-01
    • 1970-01-01
    • 2020-04-28
    • 1970-01-01
    • 2021-10-26
    • 2017-06-11
    相关资源
    最近更新 更多