【发布时间】:2016-08-03 02:29:04
【问题描述】:
我的简单更新查询执行时间过长。 大约有 1000 万条记录——其中我只为 1k 条记录执行。
语句是这样的:
UPDATE tab
SET col1= 'yes',
col2 = 'yes'
WHERE col7 ||'_'|| col8 = 'VAL_0'
AND col10 = 'NA'
此语句执行大约需要 70 分钟。
我还在col7 ||'_'|| col8 这个上创建了索引。
虽然需要这么长的时间。
编辑:这里的“VAL_0”来自其他结果集(数据表)
有什么建议可以让我的查询运行得更快。我尝试在 (col10) 和 (col7 ||'_'|| col8) 上使用索引,但执行起来需要大量时间。
您建议的其他调优技术?
谢谢
【问题讨论】:
-
双引号
"NA",这是一栏吗? -
为什么要在第二个yes后面加逗号?
-
为什么不简单地
col7 = 'VAL' and col8 = '0'? -
我不是预言家,但是:最好检查一下
col7='VAL' AND col8=0... col10 上有索引吗?将 col1 和 col2 设置为“yes”是否会影响其他索引? -
@jarlh,Joe Taras,抱歉输入错误我更新了我的问题,'VAL_0' 是来自其他表的数据
标签: sql oracle performance sql-update database-tuning