dedlfix: Datensatz vor dem speichern auf änderung vergleichen!

Beitrag lesen

Tach!

Den Datensatz vor dem Speichern abzufragen, ist mit dem Aufwand einer SELECT-Statements verbunden.
Nein. Das Bedarf nur einer Where-Clause.

Stimmt. Mit einem WHERE auf mindestens eine Ungleichheit über alle Felder lässt sich das Update direkt steuern. Aber gewonnen hat man damit kaum etwas. Die unveränderten Daten werden nach wie vor zum DBMS übertragen und erst kurz vor dem Ziel erspart man sich eine Schreiboperation, die das DBMS möglicherweise sowieso von sich aus wegoptimiert hätte. Sowas bringt nur dann Punkte, wenn das DBMS nicht selbst optimiert und ein aufwendig zu aktualisierender Index im Anschluss der Änderung nachgezogen werden muss.

Die Verhinderung des Update-Vorgangs ist an sich nur dann sinnvoll, wenn fachliche Gründe dafür sprechen. Das heißt, wenn Daten nur dann geändert werden dürfen, wenn kein anderer zwischenzeitlich Änderungen vorgenommen hat. Ob man dazu die Tabelle um einen Sequenzzähler erweitert oder alle Felder einzeln mit dem jeweiligen alten Wert vergleicht, kommt darauf an, ob man die Tabelle um das Sequenzfeld erweitern kann oder ob etwas dagegenspricht.

dedlfix.