在SQL Server 2016中,他们在现有表中引入了并行插入。通过在目标表上没有某些功能,SQL Server可以在并行流中插入数据。
使用。的语法 INSERT [tableName] WITH(TABLOCK) 选择.....
数据将并行插入。我已经看到使用它的很大改进。通常需要大约10分钟来插入1.2亿,使用这个新功能只需要大约30秒。
如何在SSIS中使用此新设置?我正在使用Visual Studio 2015 Enterprise和SQL Server 2016。 我知道我可以使用“执行SQL任务”并将这样的内容放入其中,但我想知道的是如何在数据流中使用它?目标适配器中是否有特定的连接管理器和设置?
答案 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`语句加载它,这些语句不受并行操作的约束。