嗨,我需要按顺序阅读,而不必过多地过滤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缓冲区设置是否太低?有什么建议么 ?
答案 0 :(得分:0)
尝试以下方法:
Select *
from TABLE t
where mod(mycolumn, N)=x
N-并行流的数量
x-[0,N-1]-流号
如果您的mycolumn
的基数不够高,请尝试使用rid(t)
表达式代替mycolumn
。
rid函数参考。