9

我最近完成了 SSIS 课程。

我得出的最佳实践之一是始终在 SSIS 的数据流任务中使用存储过程。

我想有一个关于安全性的争论,但是导师说,由于存储过程在 SQL Server 上执行了所有“本机”工作,因此性能得到了显着提升。

这或辩论这一点的文章有什么道理吗?

谢谢

4

2 回答 2

5

请记住 - 大多数课程都是由无知的人完成的,因为有知识的人通过咨询赚钱,这比培训要好得多。大多数培训师都住在一个玻璃房子里,从不花 9 个月的时间在一个 21tb 的数据仓库上工作;)

这是错误的。观点。

仅当 SQL 语句不从数据库中提取数据时才有意义 - 例如合并表等。

否则,这是您设置 SSIS 端的智能程度的问题。SSIS 可以使用大容量复制机制而不使用 SQL 写入数据。SSIS 更加灵活,如果您从远程数据库中提取数据,那么不离开数据库(即处理本机)的论点是一个愚蠢的观点。当我将数据从 SQL Server A 复制到 SQL Server B 时,B 上的 SP 无法处理来自 A 本机的数据。

一般来说,只有当您从 A 获取数据并将其推送到 A 并且所有处理都可以在一个简单的 SP 中完成时,它才会更快——这是一种退化的边缘情况(即一个简单化的情况)。

SSIS 的优点是在为数据流设计的环境中处理数据的灵活性,在许多情况下,在项目中需要这样做,而在存储过程中这样做会变成噩梦。

于 2012-07-06T09:53:06.450 回答
2

旧线程,但相关主题。

对于数据源连接,我更喜欢 SP 而不是嵌入式查询,因为 A)逻辑足够简单,可以以两种方式处理,B)SP 的支持比使用包更容易。如果 SP 返回一个相当简单的结果集,我没有发现数据源的性能差异很大(如果有的话)。

我们的商店有一个更复杂的包部署过程,这使得 SP 成为首选来源。

除了偶尔记录 SP 调用外,我还没有发现很多将 SP 用作数据目标的应用程序。

于 2015-04-23T01:25:43.223 回答