Bei dem update
auf alle Spalten zeigt sich das bekannte Muster aus den vorherigen Abschnitten: Die Antwortzeit steigt mit jedem zusätzlichen Index. Bei dem update
, das nur einen Index betrifft, steigt die Antwortzeit aber nicht so weit, da nur ein Index aktualisiert werden muss.
Zur Optimierung der update
-Performance muss man daher darauf achten, nur die tatsächlich geänderten Spalten zu aktualisieren. Das ist auch naheliegend, wenn man die SQL-Anweisungen manuell erstellt. ORM-Werkzeuge können aber durchaus update
-Anweisungen generieren, die immer alle Spalten aktualisieren. Bei Hibernate ist das zum Beispiel der Fall, wenn der Dynamic-Update-Modus deaktiviert ist. Seit Version 4.0 ist dieser Modus aber standardmäßig aktiviert.
Bei ORM-Tools ist es generell eine gute Praxis, das SQL-Logging in der Entwicklungsumgebung gelegentlich zu aktivieren und die erstellten Anweisungen zu kontrollieren. „Tipp: SQL-Logging aktivieren“ hat eine kurze Übersicht, wie man das SQL-Logging in gängigen ORM-Tools aktiviert.
Gibt es auch Fälle, in denen insert
- oder delete
-Anweisungen nicht alle Indizes der Tabelle betreffen?
Du kannst nicht alles an einem Tag lernen. Abonniere den Newsletter via E-Mail, Bluesky oder RSS um sukzessive aufzuholen. Und sieh dir auch modern-sql.com an.
Markus verwandelt veraltetes SQL-92-Wissen in solides und zeitgemäßes SQL-Know-how