Ich habe eine große Tabelle mit 40 Millionen Zeilen in einer Tabelle. Ich muss den gesamten Tisch aktualisieren, weil ich nichts verpassen möchte. Der Update-Befehl wird verwendet, um den Wert aus einer anderen Tabelle abzurufen und um diesen zu verwenden.Cache-SQL-Update für die tägliche Wiederverwendung
Update D
Set D.Key = S.Key
from Activity D with (NOLOCK)
inner Join Account S
on D.ID = S.ID
OPTION (HASH JOIN)
Mit Aktivität D den großen Tisch 40 Millionen und Kontentabelle S eine 1,2 Millionen sein wird, das ist, warum ich die HASH Option Join nehmen.
Anyways Ich muss dieses Update jeden Tag in einem SQL-Task in meinem ETL-Prozess tun, nur wundernd, da nicht viel geändert wird und kein Index vorhanden ist, um in den Prozess in der Tabelle zu beschleunigen. Gibt es eine Möglichkeit, um diesen Prozess überhaupt zu beschleunigen, ob es eine Möglichkeit gibt, dies zu cachen, so dass es nicht jeden Tag das ganze von Grund auf neu machen muss oder würde dies in einem Stored Proc beschleunigen, anstatt nur ein SQL Script zu verwenden wie ich es gerade mache?
Danke
Der offensichtliche Ansatz besteht darin, einen Index auf "Account (ID, Key)" zu setzen. –
Gibt es eine Möglichkeit, das Gegenteil zu tun und einen Index für die Aktivitätstabelle zu haben, um stattdessen einen massiven Leistungsschub zu erhalten. Ich habe nicht erwähnt, aber ich muss das obige Skript für 20 andere Tabellen machen, wobei die Account-Tabelle nur eine davon gegen die Aktivitätstabelle ist. – abs786123