Wir verwenden eine SQL Server PDW-Appliance für unser Data Warehouse. Eine der Tabellen in unserem Lager ist eine replizierte Tabelle mit etwa 20 Millionen Zeilen. Im Rahmen unseres ETL-Prozesses müssen alte Datensätze aus dieser Dimension ablaufen. Wir sehen jedoch, dass das Aktualisieren einer Handvoll Datensätze (<100) mehr als 1 Stunde dauert. Das möchte ich verbessern, wenn ich kann.
Eine Option, über die ich nachgedacht habe, war natürlich, diese Dimension von Repliziert in Verteilt zu ändern. Meine Tests haben gezeigt, dass das Problem dadurch behoben wird, dass der ETL-Prozess lange dauert (von 1,5 Stunden auf 30 Sekunden), aber alle Verknüpfungen mit der verteilten Version dieser Dimension betroffen sind, da die Verknüpfungen fast nie auf derselben Verteilung basieren Säule. Wenn ich mir den Ausführungsplan einiger dieser Abfragen ansehe, sehe ich normalerweise entweder eine ShuffleMove- oder eine BroadcastMove- Operation.
Meine Frage an den PDW-Guru lautet also:
Gibt es noch etwas, das getan werden kann, um die Leistung beim Aktualisieren von Datensätzen in der replizierten Version dieser Dimension zu verbessern ?
Auch hier scheint der Wechsel zu einer verteilten Tabelle nicht die beste Lösung zu sein, da er Hunderte von bereits geschriebenen SQL-Abfragen und Berichten betrifft, die von anderen Personen entwickelt wurden.