“更新时的性能调整”查询



我的简单更新查询执行时间太长。大约有1000万条记录——在我只为1万条记录执行的记录中。

声明如下:

UPDATE tab
   SET col1= 'yes',
       col2 = 'yes'
 WHERE col7 ||'_'|| col8 = 'VAL_0'
   AND col10 = 'NA'

执行此语句大约需要70分钟。

我还创建了col7 ||'_'|| col8的索引。尽管这需要这么长的时间。

编辑:此处"VAL_0"来自其他结果集(数据表)

有什么建议可以让我的查询更快地运行吗。我尝试在(col10)和(col7 ||'_'|| col8)上使用索引,但执行起来要花很多时间。你建议的其他调整技术?

感谢

这是查询:

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';

(注意:如果col8实际上是一个数字,则使用0而不是'0'。)

然后在tab(col10, col7, col8) 上创建索引

最新更新