2012-07-06 69 views
9

我最近完成了SSIS课程。SSIS性能中的存储过程vs嵌入式SQL

我最喜欢的一个最好的做法是总是在SSIS中的数据流任务中使用存储过程。

我想周围有安全性的争论,但导师表示,由于存储过程在SQL Server有上进行的所有工作“原生”的/是一个显著的性能提升。

对此或有争论点的文章有没有道理?

感谢

+0

有趣的话题。 – 2012-07-06 09:31:28

回答

4

记住 - 大部分课程由无能的人,因为人的知识挣钱做咨询所付很多比训练做得更好。大多数培训人员生活在一间从未花费9个月的时间在21tb数据仓库上工作的玻璃屋内;)

这是错误的。点。

它不仅使当SQL语句不拉数据从数据库中感 - 例如合并表等

否则它就是你有多聪明建立SSIS侧的问题。 SSIS可以使用批量复制机制写入不使用SQL的数据。 SSIS更加灵活,如果你从远程数据库提取数据,那么不离开数据库(即处理本地数据)的理由是一个愚蠢的问题。当我将数据从SQL Server A复制到SQL Server B时,B上的SP无法处理来自本机的数据。

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

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

+2

确保您的拼写正确有一点努力很长的路要走。 – JsonStatham 2012-07-06 10:33:47

+0

非常简单,如果从数据库获取数据并将其推送到同一数据库,SP将会有所帮助。否则,在数据流任务中使用原始SQL是“可接受的” – 2012-07-06 13:37:38

+0

从技术上讲,这是核心 - 实际上它也取决于您与数据的相关程度。 – TomTom 2012-07-06 13:46:56

2

旧的线程,但一个相关的主题。

对于数据源连接,我有利于对嵌入的查询时的SP A)的逻辑足够简单以两种方式进行处理,和B)SP的支撑大于与包装工作更容易。 如果SP返回相当直接的结果集,我还没有发现数据源的性能差异(如果有的话)。

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

我还没有找到非常多的SP作为数据目标的应用程序,除了偶尔的记录SP调用。