我的简单更新查询执行时间太长。 我只为1k记录执行了大约1000万条记录。
声明是这样的:
UPDATE tab
SET col1= 'yes',
col2 = 'yes'
WHERE col7 ||'_'|| col8 = 'VAL_0'
AND col10 = 'NA'
此声明大约需要70分钟才能执行。
我还在col7 ||'_'|| col8
创建了索引。
虽然需要这么长的时间。
编辑:这里'VAL_0'来自其他结果集(数据表)
是否有任何建议,以便我可以更快地运行查询。我尝试在(col10)和on(col7 ||'_'|| col8
)上使用索引,但是执行需要花费很多时间。
你建议的其他调音技术?
由于
答案 0 :(得分:1)
这是查询:
UPDATE tab
SET col1= 'yes',
col2 = 'yes',
WHERE col7 ||'_'|| col8 = 'VAL_0' AND col10 = 'NA'
从tab(col10)
上的索引开始。这可能有所帮助。
如果可以,请将查询更改为:
UPDATE tab
SET col1= 'yes',
col2 = 'yes',
WHERE col7 = 'VAL' AND col8 = '0' AND col10 = 'NA';
(注意:如果0
实际上是一个数字,请使用'0'
代替col8
。)
然后在tab(col10, col7, col8)