2017-02-17 73 views
1

在SQL Server 2016中,他们将并行插入引入到现有表中。通过在目标表上没有某些功能,SQL Server可以将数据插入到并行流中。SSIS和并行插入

使用 INSERT [表名] WITH(TABLOCK) SELECT的语法.....

的数据将被并行地插入。我已经看到使用它的很大改进。通常需要10分钟才能插入1.2亿个,使用这个新功能只需要大约30秒。

如何在SSIS中使用此新设置?我使用Visual Studio 2015 Enterprise和SQL Server 2016. 我知道我可以使用“执行SQL任务”并放入类似的东西,但是我想知道的是如何在数据流中使用它?目标适配器中是否有特定的连接管理器和设置?

+0

请参阅:https://msdn.microsoft.com/en-us/library/bb522534.aspx –

+0

@KinchitDalwani我看了那篇文章。关于新升级的内容非常丰富,但我没有看到任何有关平行插入的内容。我错过了吗? – Craig

+0

这可能会回答你的问题:https://blogs.msdn.microsoft.com/sqlperf/2007/05/11/implement-parallel-execution-in-ssis/ –

回答

0

在sql server 2016中,我们需要为我们的插入操作提供两种使用并行性的条件。第一个是数据库的兼容级别必须设置为130.所以在运行你的ssis包之前,请检查你的数据库兼容级别。

SELECT name, compatibility_level FROM sys.databases 

第二个条件是使用TABLOCK提示。在SSIS包中,您可以选择带OLEDB目标的TABLOCK提示。

0

不,您不能在DTF中使用并行插入。
根据SQL 2016中的并行插入的Microsoft description,只有在执行INSERT ... SELECT ...语句时才能使用它,但有一些限制。数据流在SSIS服务器的内存中准备数据表,OLEDB或ODBC目标将尝试使用'INSERT BULK` INSERT语句加载它,这些语句不受并行操作的限制。