2017-11-20 2 views
2

Ich verwendete OLE Db Ziel für den Massenimport mehrerer Flat Files. Nach einigem Tuning war ich mit SQL Server Destination 25 - 50% schneller.SQL Server Ziel vs OLE DB Ziel

Obwohl ich über dieses Ziel verwirrt bin, da es widersprüchliche Informationen im Internet gibt, sind einige dagegen, einige schlagen vor, es zu benutzen. Ich würde gerne wissen, gibt es irgendwelche gravierenden Fallstricke, bevor ich es in der Produktion einsetze? Dank

+0

Welche Informationen sind widersprüchlich? Der Nachteil des SQL Server-Ziels besteht darin, dass das Paket auf dem SQL Server ausgeführt werden muss, in den Sie einfügen. Wenn Sie also Pakete auf einem anderen Server ausführen als den, in den Sie einfügen, verwenden Sie ihn nicht. Ich dachte, dass die Information ziemlich klar ist. –

+1

Neben dieser Einschränkung der Flexibilität können Fehlermeldungen im SQL Server-Ziel viel kryptischer sein. Daher empfehlen einige Benutzer, sie aus diesem Grund nicht zu verwenden. Zum Beispiel (und Matt sollte wissen), https://www.mattmasson.com/2012/06/should-i-use-the-sql-server-destination/ – Rich

+0

Ich meinte widersprüchlich, da einige vorschlagen, OLE DB über SQL zu verwenden Serverziel Wenn Einschränkungen nur sind: Shared Memory verwenden, keine Fehlerausgabe, damit kann ich leben. Ich wollte nur mögliche Probleme vermeiden, die in Zukunft auftreten könnten. –

Antwort

1

SQL Server Destination

Nach dieser Microsoft Article:

Das Ziel SQL Server eine Verbindung zu einem lokalen SQL-Server-Datenbank und bulk lädt Daten in SQL Server-Tabellen und Ansichten. Sie können das SQL Server-Ziel nicht in Paketen verwenden, die auf eine SQL Server-Datenbank auf einem Remote-Server zugreifen. Stattdessen sollten die Pakete das OLE DB-Ziel verwenden.

Das SQL Server-Ziel bietet die gleiche Hochgeschwindigkeits-Einfügung von Daten in SQL Server, die der Bulk-Insert-Task bietet; Wenn Sie jedoch das SQL Server-Ziel verwenden, kann ein Paket Transformationen auf Spaltendaten anwenden, bevor die Daten in SQL Server geladen werden.

OLEDB Reiseziel:

zum Laden von Daten in SQL Server, sollten Sie anstelle des Ziel OLE DB

OLEDB Destination

Nach diesem Microsoft Article mit dem SQL Server-Ziel betrachten - Schnellladeoption: Laden Sie Daten in eine Tabelle oder Sicht in das OLE DB-Ziel und verwenden Sie die Schnellladeoption, die für Masseneinfügungen optimiert ist

OLEDB Destination vs SQL Server Destination

dazu Nach MSDN Page:

Donald Farmer, der ehemalige Group Program Manager für Integration Services sagte, dass Sie eine 5 bis 10% Leistungssteigerung der Verwendung erhalten können SQL Server Destination.


Fazit

Base auf diesen Informationen, kann man sagen, dass SQL Server Destination die Leistung erhöhen Einfügen von Daten (es verwendet Masseneinfügung), aber es ist für einen bestimmten Fall entworfen, die die lokale SQL Server. OLEDB Destination ist allgemeiner und wird in den anderen Fällen empfohlen.

Sie können auch einfach den Zugriffsmodus Fast Load Daten verwenden (die auch Masseneinfügung verwendet) auf der OLE DB destination den Einsatz Leistung zu erhöhen. Sie müssen jedoch berücksichtigen, dass die Fast Load-Option eine Tabellensperre für die Zieltabelle vornimmt und anderen Benutzern während des Einfügens den Zugriff darauf verwehrt.

+1

Eine Sache zu prüfen, ist, dass 'OLE DB-Verbindung' ist dann breiter als 'SQL Server Destination' und es ist einfacher, es zu verwandten Themen zu finden – Yahfoufi

0

Um Hadis gute Antwort zu erweitern, verwenden Sie nicht das SQL Server-Ziel.

Nach meiner Erfahrung überwiegt der Leistungsvorteil nicht die Beschränkung, dass das Paket auf dem gleichen Computer wie die Zieldatenbank ausgeführt werden muss. Es erzwingt eine Verarbeitungsarchitektur, die heute oder in einem Jahr für Sie geeignet ist oder auch nicht. Es ist einfach zu unflexibel für meinen Geschmack.

Der andere, größere Grund, den ich befürworte, das SQL Server-Ziel zu vermeiden, ist die Flat-out-Bugginess, die ich damit erlebt habe. Gleiche flache Datei zu einer leeren Tabelle - Runde 1, bricht mit einer vagen Fehlermeldung ab (kann sich nicht erinnern), dass etwas schief gelaufen ist. Starten Sie das Paket sofort neu und es funktioniert wie erwartet. Vielleicht können Sie, die meisten bescheidenen Leser, akzeptieren, dass in der Verarbeitungszeit für die Wiederaufbereitungszeit tauschen, aber für mich ist es nicht wert, seit wahrscheinlich 2008.

Verwandte Themen