2017-02-17 70 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語句加載它,這些語句不受並行操作的限制。