SSIS和平行插入

时间:2017-02-17 21:10:06

标签: sql ssis sql-server-2016

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

使用。的语法     INSERT [tableName] WITH(TABLOCK)     选择.....

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

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

2 个答案:

答案 0 :(得分:0)

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

SELECT name, compatibility_level FROM sys.databases

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

答案 1 :(得分:0)

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