Ich habe die folgende Select-Anweisung, die fast sofort beendet wird.
%Vor%Die äquivalente Aktualisierungsanweisung benötigt jedoch 1m40s
%Vor%Auch wenn ich hinzufügen:
%Vor%am Ende der update-Anweisung, die die Anzahl der Schreibvorgänge auf Null reduziert, dauert es genauso lange.
Mache ich hier etwas falsch? Warum gibt es so einen großen Unterschied?
Obwohl der übliche Verdächtige ein Auslöser ist ...
Auch Ihre zusätzliche Bedingung hat keine Bedeutung: Wie kann SQL Server dies ignorieren? Ein Update wird immer noch mit dem größten Teil des Gepäcks generiert ... selbst der Auslöser wird weiterhin ausgelöst. Sperren müssen gehalten werden, während Zeilen nach den anderen Bedingungen gesucht werden, z. B.
Bearbeitet Sep 2011 und Feb 2012 mit mehr Optionen
Weil das Lesen keine Auswirkungen auf Indizes, Trigger und was hat Sie?
In langsamen Servern oder großen Datenbanken verwende ich normalerweise UPDATE DELAYED, das auf eine "Pause" wartet, um die Datenbank selbst zu aktualisieren.
Tags und Links triggers sql-server performance sql-server-2005 tsql