2017-02-17 14 views
1

In SQL Server 2016 führten sie parallele Inserts in vorhandene Tabellen ein. Da bestimmte Funktionen in der Zieltabelle nicht vorhanden sind, kann SQL Server die Daten in parallele Datenströme einfügen.SSIS und parallele Inserts

mit der Syntax von INSERT [tablename] mit (TABLOCK) SELECT .....

Die Daten werden parallel eingeschoben werden. Ich habe große Verbesserungen dabei gesehen. In der Regel dauert das Einfügen von 120 Millionen etwa 10 Minuten. Die Verwendung dieser neuen Funktion dauert nur etwa 30 Sekunden.

Wie kann ich diese neue Einstellung in SSIS verwenden? Ich verwende Visual Studio 2015 Enterprise und SQL Server 2016. Ich weiß, ich kann eine "SQL-Task ausführen" verwenden und etwas so in, aber was ich frage mich, ist, wie dies im Datenfluss zu verwenden? Gibt es einen bestimmten Verbindungsmanager und Einstellungen im Zieladapter?

+0

Verweisen Sie auf: https://msdn.microsoft.com/en-us/library/bb522534.aspx –

+0

@KinchitDalwani Ich schaute auf diesen Artikel. Es war sehr informativ, was die neuen Upgrades sind, aber ich habe nichts über parallele Inserts gesehen. Habe ich es gerade vermisst? – Craig

+0

Dies könnte Ihre Frage beantworten: https://blogs.msdn.microsoft.com/sqlperf/2007/05/11/implement-parallel-execution-in-assis/ –

Antwort

0

In SQL Server 2016 müssen wir zwei Bedingungen für die Verwendung von Parallelität für unsere Einfügevorgänge bereitstellen. Die erste Stufe ist die Kompatibilitätsstufe der Datenbank, die auf 130 festgelegt werden muss. Bevor Sie also Ihr ssis-Paket ausführen, überprüfen Sie Ihre Datenbankkompatibilitätsstufe.

SELECT name, compatibility_level FROM sys.databases 

Die zweite Bedingung verwendet TABLOCK Hinweis. Im SSIS-Paket können Sie den TABLOCK-Hinweis mit OLEDB-Ziel auswählen.

0

Nein, Sie können keine parallelen Inserts in DTF verwenden.
Gemäß Microsoft description von Parallel Inserts in SQL 2016 kann es nur verwendet werden, wenn INSERT ... SELECT ... Anweisung mit einigen Einschränkungen ausgeführt wird. Datenfluss bereitet Datentabelle im Speicher des SSIS-Servers vor, OLEDB oder ODBC-Ziel versucht, sie mit 'INSERT or INSERT BULK'-Anweisungen zu laden, die keinen parallelen Operationen unterliegen.