基于主键的记录更新很慢

时间:2017-07-20 09:23:54

标签: sql oracle oracle11g informatica

我使用仅基于一个主键的信息更新200k记录中的60k记录。它仍在运行更长时间。有没有办法减少时间,因为我们无法再次在主键上创建索引,这是不必要的。

3 个答案:

答案 0 :(得分:0)

总共200k的60k更新行是一个非常高的命中率。与全表扫描相比,索引读取的效率极低。所以你真的不想使用主键索引来做这样的更新。

然而,除非您可以发布正在执行的确切查询,最好使用其解释计划,否则很难提供更多帮助。

答案 1 :(得分:0)

您的目标表很可能在其上定义了多个索引(无论您使用多少密钥进行更新),也可能有多个外键需要针对其相关表进行解析。忽略informatica一分钟,然后尝试直接在数据库上运行更新并解决

答案 2 :(得分:0)

最好的方法是删除和插入,这是一种更快的替代方式,并且可以正常工作。