页面树结构
转至元数据结尾
转至元数据起始

正在查看旧版本。 查看 当前版本.

与当前比较 查看页面历史

« 前一个 版本 5 下一个 »



概述

setFetchSize方法会提供一个数值给JDBC驱动,这个数值是当数据集对象需要读取更多行时,应该从数据库中获取的行数。使用JDBCFetch Size时需要综合考虑支持程度和具体业务系统等多种因素,并不是所有数据库都支持FetchSize,FetchSize的大小设置要合理,且需考虑内存问题,避免出现内存溢出。

设置FetchSize情况

通过数据量为百万级别的情况下,对设置FetchSize前后的时间变化百分比进行分析,结论如下:

(1)设置FetchSize之后,DB2_V9、HANA、ORACLE和SHNENTONG这几个数据库在查询效率上均有较大的提高,特别是ORACLE和SHENTONG数据库,查询时间较设置前减少了百分之九十几。

(2)CLICK_HOUSE、MYSQL、DAMENG和VERTICA需要谨慎设置Fetch Size,设置后其查询效率不升反降或者无明显提升。

(3)其余数据库类型大多无明显影响。

FetchSize大小梯度情况

通过数据量为百万级别的情况下,对各数据库设置Fetch Size为1k、5k、1w、5k和10w后查询的总耗时进行分析,结论如下:

(1)从整体上看,当不考虑内存占用时,对于绝大部分数据库而言,逐渐增大FetchSize的值时查询的总耗时呈逐渐下降的趋势。

(2)当FetchSize的值在1w左右,对于大部分数据库而言查询效率都有一个不错的提升,因此1w是一个比较合适的值。

(3)对于某些数据库具体而言,如:DB2_V9、HANA、MYSQL、ORACLE、SHENTONG和TERADATA_V12随FetchSize值的增大而效率提升巨大;CLICK_HOUSE、DAMENG和POSTGRESQL的查询效率也有一定幅度的提升;DAMENG_V6、INFORMIX、VERTICA、ALIYUN_MAX_COMPUTE和IMPALA的相关影响不大;GBASE、KINGBASE、MSSQL、GREENPLUM和KINGBASEANALYTICS的查询效率反而是有一定幅度的降低。

FetchSize性能情况

(1)oracle 单次查询内存大小受fetchsize大小设置影响,值越大,内存使用越大,相反,性能会快。

(2)vertica 单次查询内存大小不受fetchsize大小设置影响。

(3)资源字符长度越大,内存使用越大;字段越多,内存使用也越大;内存使用不受数据行数大小影响。

  • 无标签