SSIS性能中的存储过程与嵌入式SQL

时间:2012-07-06 09:10:19

标签: sql-server tsql stored-procedures ssis

我最近完成了SSIS课程。

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

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

对于这个或那些辩论这一点的文章是否有任何道理?

由于

2 个答案:

答案 0 :(得分:4)

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

这是错误的。点。

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

否则,这是一个设置SSIS方面有多聪明的问题。 SSIS可以使用批量复制机制来编写不使用SQL的数据。 SSIS更灵活,如果从远程数据库中提取数据,那么不离开数据库(即处理本机)的论点是一个愚蠢的观点。当我将数据从SQL Server A复制到SQL Server B时,B上的SP无法处理来自本机的数据。

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

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

答案 1 :(得分:2)

旧帖子,但是一个相关主题。

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

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

我没有找到很多SP作为数据目的地的应用程序,除非是偶尔记录的SP调用。