基于主键的记录更新速度慢

Records updating based on primary key is slow

我正在使用仅基于一个主键的 Informatica 更新 20 万条记录中的 6 万条记录。仍然 运行 更长。有没有办法减少时间,因为我们不能再次在主键上创建索引,这是不必要的。

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

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

很可能您的目标 table 上定义了多个索引(无论您使用多少个键来进行更新)也可能有多个外键需要根据它们的相关 tables。暂时忽略 informatica 并尝试 运行 直接在数据库上更新并解析

最好的方法是删除和插入,这是一种更快且有效的替代方法。