设置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)资源字符长度越大,内存使用越大;字段越多,内存使用也越大;内存使用不受数据行数大小影响。