【问题标题】:What is the best practice to transfer data between SQL servers?在 SQL 服务器之间传输数据的最佳做法是什么?
【发布时间】:2012-09-26 03:55:27
【问题描述】:

我们有许多内部 SQL Server 正在运行,并且有一些日常工作正在传输数据。 而且我们还有一些外部数据库,我们将使用view或txt来传输数据。

现在,我们正在使用 DTS 和 SSIS。 但是由于一些原因,我们的经理不喜欢DTS/SSIS,所以我们从DTS/SSIS搬出来了,但是我们仍然需要传输数据。他们建议开发一些应用程序,用于加载数据/文件,然后插入目标。

这是一个好的解决方案吗?有什么建议吗?

我认为唯一合理的原因是:如果出现性能问题,在 DTS/SSIS 中很难找到原因

非常感谢!

【问题讨论】:

  • 重新发明轮子?听起来很痛苦。
  • 建议您提供他们不喜欢这些解决方案的原因,以便我们可以适当地调整回复
  • 链接服务器,可能是存储过程?
  • 有十几种不同的方法可以做到这一点。哪个最合适完全取决于您的要求和您的情况,您都没有与我们分享。也就是说,虽然 SSIS 还可以,但 DTS 已经过时,即使仍然受支持也很糟糕。

标签: sql-server ssis dts


【解决方案1】:

在服务器之间传输数据的方法有很多种。您可以使用带有 OPENROWSET 查询的链接服务器,可以使用带有暂存文件的 BCP 实用程序,或者您可以使用 PowerShell 脚本等等。

最合适的方法取决于您的具体情况,但对我而言,SSIS 通常是最合适的技术,尤其是在涉及转换的情况下。 SSIS 拥有 ETL 世界纪录(尽管这是一个使用大量硬件的人为实验),因此应该能够满足您的性能需求。

您可以做很多事情来提高 SSIS 数据移动的性能,但您的问题中没有足够的信息来确定您需要做什么,但这里有一些关于 SSIS 性能的提示:

  • 确保数据流中的缓冲区大小设置得当,通常高于默认的 10000 行,但具体大小取决于您的内存容量。

  • 确保您使用的是具有快速加载功能的 OLEDB 目标

  • 下载平衡数据分配器组件并并行加载表。这还需要堆或按排序数据上的 TABLOCK 和聚集索引上的 TF 610。

  • 避免同步转换,例如排序。

【讨论】:

    猜你喜欢
    • 2015-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-13
    相关资源
    最近更新 更多