2009-04-30 11 views
0

Ich habe 2 Tabellen (~ 4 Millionen Zeilen), die ich Aktionen zum Abgleich und Nichtübereinstimmung von Datensätzen einfügen/aktualisieren muss. Ich bin ziemlich verwirrt über die Methode, die ich für inkrementelle Belastung verwenden muss. Soll ich die Lookup-Komponente oder die neue Sql-Server-Merge-Anweisung verwenden? und wird es zu viele Leistungsunterschiede geben?Wie man incremental Load mit großen Datensätzen behandelt ssis

Antwort

-2

Vorzeitige Optimierung ist die Wurzel allen Übels, ich weiß nichts über ssis, aber es ist immer zu früh, darüber nachzudenken.

4 Millionen Zeilen können "groß" oder "klein" sein, abhängig von der Art der Daten und der Hardwarekonfiguration, die Sie verwenden.

0

Die SSIS-Suche hat drei Caching-Modi, die entscheidend sind, um die beste Leistung zu erzielen. Wenn Sie sich gegen eine große Tabelle stellen, wird der FULL Cache-Modus viel Speicher verbrauchen und die Leistung beeinträchtigen. Wenn Ihr Nachschlageziel klein ist, behalten Sie es im Speicher. Sie müssen auch entscheiden, ob sich die Daten, die Sie suchen, ändern, während Sie Daten verarbeiten. Wenn dies der Fall ist, möchten Sie nicht zwischenspeichern.

Können Sie uns mehr Informationen darüber geben, was Sie oding, damit ich eine genauere Antwort formulieren kann.

+0

Es gibt auch eine neue Funktion in SSIS 2008, mit der Sie Suchdaten zwischenspeichern, den Cache inkrementell aktualisieren und ihn dann als Cache wiederverwenden können. –

1

Ich habe dieses genaue Problem ein paar Mal in Erfahrung gebracht und ich musste immer den kompletten Datensatz in SQLServer über ETL laden und dann mit gespeicherten Procs manipulieren. Es schien immer so, als würde es viel zu lange dauern, die Daten in SSIS-Transformationen zu aktualisieren.

+0

Haben Sie SSIS 2008 verwendet und haben Sie MERGE versucht? –