我一直在使用insert / update从sql server更新或插入mysql中的表。这项工作被设置为cronjob。这项工作每8小时运行一次。源表中的记录数约为400000.每8小时约100条记录可能会更新或插入。
我在这样的地方运行工作,在源级别,我只在最后一次运行和当前运行之间进行修改后的运行。
我观察到只需要更新/插入100行,所用时间为30分钟。
但是,另一种方法是将所有400000转储到一个文件中,然后截断目标表并重新插入所有这些记录。此过程在每次作业运行时完成
所以,现在我可以知道为什么插入/更新需要花费这么多时间?
由于 瑞斯
答案 0 :(得分:0)
正如你所说的那样,在源级别运行工作,我只在最后一次运行和当前运行之间进行修改运行。
如果您有任何疑问,请与我联系。
答案 1 :(得分:0)
在不知道数据库的配置方式的情况下,很难说出确切的原因,但我会说更新很慢,因为您的目标表上没有索引。
尝试在插入/更新键列上添加索引,它会加快速度
另外,你是否在每次插入后进行提交?如果是这样,请禁用自动提交,并仅在成功时提交,如下所示:tMysqlOutput -- OnComponentOk -- tMysqlCommit
。