【发布时间】:2013-10-31 05:05:06
【问题描述】:
我正在使用以下查询将列“DEPARTMENT”添加到表“EMPLOYEE”中。
ALTER TABLE EMPLOYEE ADD DEPARTMENT varchar(15);
然后使用以下查询将 DEPARTMENT 更新为“技术”
update EMPLOYEE set DEPARTMENT = 'Technology' where DEPARTMENT is null;
由于记录数量有限,这在开发环境中似乎运行良好,但在 Prod like Environment 中需要将近 1 小时,因为在 Prod 中有大约 2000 万条记录要更新,这是不可接受的。
我们正在考虑修改更新查询以删除 where 条件,如下所示。
update EMPLOYEE set DEPARTMENT = 'Technology';
这会有帮助吗?还是有其他方法可以优化此查询?
注意:使用oracle 11g数据库
【问题讨论】:
-
删除
WHERE子句?!你知道那是做什么的吗?首先在DEPARTMENT上添加索引。 -
删除 where 子句将使用我想要的“技术”更新所有现有记录?会变得更糟吗?
-
尝试在您正在使用的表上使用索引..
-
抱歉,我不太明白您在更改表后执行
UPDATE。在这种情况下,语句很好,我相信添加索引不会有太大作用,因为它必须更新所有记录。
标签: sql oracle11g query-optimization