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

Sql server SSIS性能中的存储过程与嵌入式SQL,sql-server,tsql,stored-procedures,ssis,Sql Server,Tsql,Stored Procedures,Ssis,我最近完成了SSIS课程 我得到的最佳实践之一是在SSI中的数据流任务中始终使用存储过程 我想有一个关于安全性的争论,但是导师说,由于存储过程在SQL Server上执行了所有“本机”工作,因此性能得到了显著提升 这篇文章或争论这一点的文章是否属实 谢谢记住——大多数课程都是由无知的人完成的,因为有知识的人通过咨询挣钱,而咨询的报酬比培训高得多。大多数培训师生活在一个玻璃房子里,从来不会花9个月的时间在21tb的数据仓库上工作;) 这是错误的。重点 它只有在SQL语句不从数据库中提取数据时才有意

我最近完成了SSIS课程

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

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

这篇文章或争论这一点的文章是否属实


谢谢

记住——大多数课程都是由无知的人完成的,因为有知识的人通过咨询挣钱,而咨询的报酬比培训高得多。大多数培训师生活在一个玻璃房子里,从来不会花9个月的时间在21tb的数据仓库上工作;)

这是错误的。重点

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

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

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


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

旧线程,但却是相关主题

对于数据源连接,如果a)逻辑足够简单,可以以两种方式处理,并且B)支持SP比使用包更容易,我更喜欢SP而不是嵌入式查询。 如果SP返回一个非常严格的结果集,我没有发现数据源在性能上有多大差异(如果有)

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


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

确保拼写正确的一点努力会有很大帮助。非常简单,如果您从数据库中获取数据并将其推送到同一个数据库中,SP会有所帮助。否则,在数据流任务中使用原始SQL在技术上是“可接受的”,这是核心-实际上,这还取决于您对数据的处理程度。