我正在使用SQL2012中的LinkedServer,并每天使用以下过程刷新Oracle9G中的表。表中的当前记录为15M,并且每天增加2-3K条新记录,旧记录也在随机删除和更新。完成这项工作需要7-8个小时overnight.Considering表已经在Oracle端的索引级进行了优化,尝试这种优化最有效的方法是什么?我目前的流程如下:
Truncate table SQLTable
Select * into SQLTable from openquery (LinkedServerName,'Select * from OracleTable')
发布于 2020-04-18 01:03:58
仅仅为了3000-8000行的更改而截断15M行是没有意义的。
我会考虑使用像https://sourceforge.net/projects/pentaho/这样的ETL工具。你可以从一个免费的社区版开始。
这个工具提供了一个Spoon工具,它基本上提供了创建工作流的图形界面。使用平移工具,您可以执行使用spoon工具创建的文件。基本上是使用平移命令创建一个批处理文件,并提供.ktr文件作为参数。现在,您可以使用windows任务管理器或Unix CRON Job调度此批处理文件。
这样,您就可以创建一个工作流,该工作流可以查找更改并且只插入或更新更改。
https://stackoverflow.com/questions/61276796
复制相似问题