2014-01-20 4 views
12

Ich benutze diese 2 Hibernate Annotationen in meiner APP.Hibernate @DynamicUpdate (Wert = wahr) @SelectBeforeUpdate (Wert = wahr) Leistung

@DynamicUpdate(value=true) 
@SelectBeforeUpdate(value=true) 

zuerst werde ich versuchen zu erklären, was ich darüber verstehe zu wissen, ob ich recht habe. nur

@DynamicUpdate(value=true) 

Updates die modified values in der Entität Hibernate needs to track those changes

@SelectBeforeUpdate(value=true) 

schafft eine select vor update zu wissen, welche Eigenschaften wurde geändert, dies nützlich, wenn das Unternehmen auf verschiedenen Sitzungen Hibernate is out of tracking entity changes geladen und aktualisiert wurde

sind diese 2 Bestätigungen richtig?

mein Hauptanliegen ist.

in DB performance, die besser oder schneller aktualisiert alle Felder in der Einheit auf einmal oder generate a select to know which columns update and update only the modified columns?

+0

Haben Sie eine Antwort darauf gefunden? – membersound

+0

Noch nichts ... so traurig ... – chiperortiz

Antwort

9

Die Situation hängt von Ihrem Umstand ist. Wenn Ihre Tabelle sehr einfach ist (ohne Fremdschlüsseleinschränkungen, nur wenige Spalten, wenige Indizes), wird die Aktualisierung des vollständigen Datensatzes schneller.

Wenn Ihre Tabelle jedoch viele Fremdschlüsseleinschränkungen und -indizes enthält, ist es schneller, erst die Unterschiede auszuwählen und dann zu aktualisieren. Dies liegt daran, PostgreSQL folgende Arbeiten für jede Spalte in dem Update zu tun hat:

  • prüfen Fremdschlüssel
  • Update Indizes

Darüber hinaus können die Änderungen aufblasen zu den Tabellen hinzufügen, die müssen durch Vakuum gereinigt werden.

Denken Sie daran, dass Sie, wenn Sie dynamicUpdate für eine Datenbank mit vielen Tabellen verwenden und Ihre Aktualisierungen sehr unterschiedlich aussehen, damit beginnen, zwischengespeicherte Abfragepläne zu entfernen. Diese Pläne kosten Ressourcen, um neue zu berechnen. Zwischengespeicherte Pläne sind jedoch möglicherweise nur für nachfolgende Abfragen in derselben Sitzung nützlich.

Verwandte Themen