2016-04-29 6 views
1

Welche Teilungsoption ist besser (für Leistungszwecke) basierend auf Clustered-Index-Spalte oder auf Partition (die gleiche Spalte)? Suchvorgang Clustered Index basierend auf, wo die Bedingungen und die zweite schafft Clustered Index Scan auf PartitionSo teilen Sie die Tabelle für das parallele Laden

Ich habe Tabelle spalten sie parallel zu laden mit SSIS (SQL Server 2008R2 Enterprise Edition) auf Oracle 11.

Erste Option erstellt.

Antwort

1

Wenn sich die Partitionen in der Quellendatenbank auf unterschiedlichen Festplatten befinden, können Sie dies zum parallelen Lesen nutzen. In Ihrem SSIS-Paket hätten Sie mehrere Datenquellen, die jeweils von einer anderen Partition lesen. Dann könnten Sie die Streams vor dem Laden zusammenführen (Union All transform).

Ihr Zielsystem (Oracle?) Könnte jedoch in diesem Fall zu einem Engpass werden, oder in der Tat der Computer mit SSIS oder das Netzwerk. Im Allgemeinen ist es am besten, SSIS auf einem separaten Computer mit ausreichender Prozessorleistung und ausreichendem Arbeitsspeicher auszuführen, sodass keine Ressourcen von SQL Server benötigt werden.

Wenn Sie mit SQL Server Enterprise Edition arbeiten, kann der Abfrageoptimierer aufgrund der großen Datenmenge möglicherweise einen parallelen Ausführungsplan erstellen. Sie sollten den grafischen Ausführungsplan prüfen, um zu sehen, was er tut.

Sie müssen testen, um festzustellen, wo die Engpässe sind. Dann optimieren, um jeden Engpass zu beseitigen. Sobald Sie einen Engpass beseitigt haben, wird ein anderer Teil des Gesamtsystems zum begrenzenden Faktor.

Sie könnten einige einfache Timing-Tests wie folgt durchführen. Erster einzelner Stream.

enter image description here

Dann Parallelstrom. Dadurch können Sie messen, wie Ihr SQL Server-Computer funktioniert, und ob die Verwendung paralleler Streams von Vorteil ist.

enter image description here

Es gibt einen Kurs auf Microsoft Virtual Academy: „Designing BI-Lösungen mit Microsoft SQL Server“ und das fünfte Modul „Entwerfen Sie eine ETL-Lösung“ spricht über unterschiedliche Strategien für das Laden SSIS verwenden.

Auch ein wichtiger Punkt: Sie müssen das SSIS-Paket auf einem Server für maximale Leistung ausführen. Wenn Sie das Paket in Visual Studio (SQL Server-Datentools) ausführen, wird die Leistung sehr reduziert.

+0

Was passiert, wenn ich nur viele (2 oder 3) Datenflüsse Blöcke mit unterschiedlichen Bedingungen (nur Teiltabelle basierend auf einer Spalte) erstellen und parallel ausführen? Dies ist schneller als ein Datenflussblock (ganze Tabelle)? – PNPTestovir

+1

Ich habe meine Antwort aktualisiert, um zu zeigen, wie Sie das testen können. Es ist nur durch Testen, dass Sie die Antwort herausfinden werden. – RichardCL

Verwandte Themen