timekomplexität: UPDATE … WHERE vs UPDATE ALL

Ich habe eine database-Tabelle DuplicatesRemoved mit möglicherweise eine große Anzahl von datasätzen. Ich laufe bestimmte Operationen aus, um Duplikate von Benutzern in meiner Anwendung zu entfernen, und jedes Mal, wenn ich die Duplikate beseitige, behalte ich die doppelte UserID , indem ich sie in dieser Tabelle DuplicatesRemoved speichere.

Diese Tabelle enthält ein Bitfeld HistoryRecord . Ich muss dieses Feld am Ende jeder "RemoveDuplicates" -Operation aktualisieren.

Ich habe keine Indizes für DuplicatesRemoved .

Ich frage mich, welche davon besser wäre?

1

 UPDATE DuplicatesRemoved SET HistoryRecord=1 WHERE HistoryRecord<>1 

ODER

2

 UPDATE DuplicatesRemoved SET HistoryRecord=1 

Wird Abfrage # 1 weniger time nehmen als Query # 2?

Ich habe diese Frage schon erwähnt, aber immer noch nicht sicher, welche für mich besser wäre.

Solutions Collecting From Web of "timekomplexität: UPDATE … WHERE vs UPDATE ALL"

In der ersten Option:

 UPDATE DuplicatesRemoved SET HistoryRecord=1 WHERE HistoryRecord<>1 

Sie müssen diese datasätze finden und nur die aktualisieren .

Bei der zweiten Option:

 UPDATE DuplicatesRemoved SET HistoryRecord=1 

Sie müssen die gesamte Tabelle aktualisieren.

Also erste Option wird besser vorausgesetzt, Sie finden die datasätze schnell, und minimiert auch die Anzahl der Sperren, die während der time der Aktualisierung erworben wurden, und die Gesamtgröße der Transaktion, die der Motor in die Protokolldatei schreibt (dh die datasätze, die wir benötigen in der Lage sein zu rollen).

Das Zeigen des Ausführungsplans wird bei dieser Entscheidung helfen.

In databaseen messen Sie die Anzahl der Plattenzugriffe, um die Komplexität einer Abfrage auszuwerten, da die time, etwas aus dem externen memory zu lesen, die Reihenfolge der Größe größer als die time ist, um einige Operationen im Hauptspeicher auszuführen.

Die beiden Abfragen, wenn kein Index vorhanden ist, haben die gleiche Anzahl von Plattenzugriffen, da beide den vollständigen Scan der Relation erfordern.