DB2数据库上得fetchSize属性(JDBC)

kmpatx3s  于 2022-11-07  发布在  DB2
关注(0)|答案(1)|浏览(319)

我正在研究如何提高一个DB2数据库中数百万行的选择查询的性能。不幸的是,我还没有访问权限,无法测试它。
所以我试着通读文档,发现有一条语句让我很困惑。
据我所知,我必须创建一个Statement对象,以便设置fetchSize属性,这就是我在程序代码中看到和执行它的方式。
此外,该语句与前一句话(可以使用Statement.setFetchSize method来设置提取大小)在某种程度上相矛盾。
有人能澄清一下或分享一下他/她使用JDBC/fetchSize/DB2的经验吗?
在IBM的文档中(参见link):

提取大小

指定从Statement对象生成的ResultSet对象的默认提取大小。此属性的数据类型为int。
Statement.setFetchSize方法可以覆写fetchSize预设值。设定fetchSize时,fetchSize属性不会影响现有的Statement对象。
fetchSize的可能值为:

0或正整数

新创建的语句对象的默认fetchSize值。如果fetchSize属性值无效,则用于JDBC和SQLJ的IBM数据服务器驱动程序会将默认fetchSize值设置为0。

**DB2BaseDataSource.FETCHSIZE_NOT_SET(-1)**数据库基本数据源

指示Statement对象的默认fetchSize值为0。此值为属性默认值。fetchSize属性与queryDataSize属性不同。fetchSize影响返回的行数,queryDataSize影响返回的字节数。

yx2lnoni

yx2lnoni1#

这意味着在连接级别设置的fetchSize值默认用于所有未来的Statement对象,除非它被Statement.fetchSize()覆盖。在连接级别更改fetchSize不会影响先前创建的Statement

相关问题