本地服务器(SCADA系统)使用SQL Server,而链接服务器(ERP系统)使用Oracle。
当前情况如下:
ERP系统在其服务器上有一个表,所有批处理订单都被一致地更新到该表。我可以访问该表,但是无法从ERP端进行任何操作/配置。任何配置/查询都必须在本地服务器上完成。
我尝试直接从ERP表中查询行,但是由于某些原因导致〜30s的延迟。然后,我创建了一个本地表,并插入了ERP表中的所有行,以查看是否在从新本地表中查询时仍然存在延迟。那里没有延迟。因此,我想出是否可以像ERP表格一样更新本地表,我只需要使用本地表即可。
所以我的问题是,没有能力配置/操作ERP端,是否有办法将ERP表上更新的所有新行插入到本地表中?
通常,用于ERP系统的DBA不喜欢更改主要的ERP模型架构,因为它会创建更多对象以在应用程序升级期间进行处理-通常首选原始应用程序升级。
他们有时可以忍受的是在ERP表上的触发器创建到另一个Oracle模式中的另一个表(您的设计)中,您可以随意操作。
从该表中,您可以决定在进行操作时通过链接服务器设置标志将数据提取到MSSQL中,或者删除旧数据,以便将每次调用的数据提取减至最少。通常,在新的Oracle模式中调用存储过程来执行表更新或删除操作似乎效果更好,因为链接服务器在将数据移到MSSQL端进行处理时非常慢。
另一个替代方法(比使用LinkedServer快得多)是在Windows服务器上使用Windows服务或计划脚本(ex VBS)与Oracle和MSSQL对话以实现相同的目标。这可以在原始表上直接完成,也可以在新表上完成。您将根据近乎实时的要求确定轮询间隔。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句