读取大量记录(批量读取)DB2

时间:2019-03-20 17:25:43

标签: sql performance db2 rdbms

嗨,我需要按顺序阅读,而不必过多地过滤DB2表中的大量数据。为了使READs并行化,我首先从具有良好基数(没有太多重复)的索引中读取所有元素,然后将它们划分为100个列表,然后使用

SELECT from TABLE where mycolumn in ('value1','value2'....'value100') with UR

打开某些SQL的跟踪之后,它会得出为5000条记录提供结果的结果:

User CPU: 0.032192 seconds
System CPU: 0.003841 seconds

DB2位于SSD驱动器上。为什么需要32毫秒的用户时间?

在Java方面,我已将JDBC驱动程序配置为使用ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY

更多细节,我需要用数据快速填充内存结构。为此,我需要能够从数据库中快速读取数据。

DB2缓冲区设置是否太低?有什么建议么 ?

1 个答案:

答案 0 :(得分:0)

尝试以下方法:

Select *
from TABLE t
where mod(mycolumn, N)=x

N-并行流的数量
x-[0,N-1]-流号

如果您的mycolumn的基数不够高,请尝试使用rid(t)表达式代替mycolumn

rid函数参考。