链接服务器与SSIS

时间:2015-09-01 18:47:16

标签: sql wcf ssis linked-server azureservicebus

当我想在两个数据库之间移动数据时,有什么更好的选择。

A)链接服务器

数据库local->链接服务器 - >数据库azure

b)ETL - SSIS

数据库本地创建过程xml - >整合服务 - >序列化xml到对象c#>调用wcf服务async(queue-servicebus) - >坚持数据库azure

2 个答案:

答案 0 :(得分:0)

以下链接介绍了链接服务器与SSIS的优缺点,并建议将链接服务器最佳地应用于审核中。

https://dba.stackexchange.com/questions/5712/whats-the-difference-between-linked-server-solution-and-ssis-solution

它实际上归结为您正在考虑从一个数据库移动到另一个数据库的数据量以及用于何种目的。也就是说,您是在处理必须为接口获取的实时数据吗?必须根据具体情况加以考虑。在我的开发环境中,将信息从其他来源提取到数据库时不需要实时。在这种情况下,SSIS效果最好,它可以全天提供包裹应用程序的完整日志。

补充意见:

  • SSIS通常使用BULK INSERTS更快,并且具有更好的安全性。
  • 链接服务器可能会产生灾难恢复问题,并且在一个或多个服务器可能无法使用的环境之间移动代码时可能会出现问题。

最后,我建议您与DBA讨论如何应用链接服务器。我过去曾与之合作的DBA大多担心维护其应用程序的责任。这是开发中“可能”与“应该”问题之一,您必须关注整个系统的影响。

答案 1 :(得分:0)

当我们使用链接服务器时,还有使用BULK INSERT的选项。在这种情况下,SSIS不会更快(在许多情况下它甚至更慢)。

SSIS在某些实现中有一些限制: - 当域不受信任时跨域问题(当我们调用包时,SSIS不能与SQL身份验证一起使用) - 架构更改时不易自动化 - 如果需要转换,TSQL通常更快。 - 具有集成CDC数据源的SSIS在某些情况下工作不正确且速度较慢。经Microsoft确认,问题尚未解决(SQL 2014/2016)

如上所述,它应该“必须根据具体情况考虑”。这里没有'YES'或'NO'。