Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

SQL DML multiple Updates - ein Statement?

Empfohlene Antworten

Veröffentlicht

Hi,

ich hab ne Frage, ob SQL meine Bedürfnisse so befriedigen kann, wie ich es mir vorstelle! :D

Ich mache eine Bestandsbereinigung und dazu automatisiert SQL-Update-Statements erzeugt, die von unseren Datenbankern ausgeführt werden.

Nur ist das ganze wg. folgender Problematik ultra-fail-langsam;


UPDATE tabelle SET spalte = 'wert_neu1' where spalte = 'wert_alt1';

UPDATE tabelle SET spalte = 'wert_neu2' where spalte = 'wert_alt2';

...

..

.

Sieht richtig billig aus, nur hat die Tabelle mehrere millionen Zeilen und es sind update-statements im 3-stelligen Anzahlen-Bereich. Für ein Update brauch er mehrere Minuten, das multipliziert sich natürlich. Ich hatte jetzt überlegt, dass es cool wäre, wenn SQL so etwas in der Art könnte;

UPDATE tabelle SET 

spalte = 'wert_neu1' where spalte = 'wert_alt1' OR

spalte = 'wert_neu2' where spalte = 'wert_alt2';

Also, dass er nur 1x über den gesamten Bestand gejagt wird. Gibts sowas?

BTW: is ne 10'er Oracle DB.

Hi,

Also, dass er nur 1x über den gesamten Bestand gejagt wird. Gibts sowas?

BTW: is ne 10'er Oracle DB.

Die Frage wäre vielmehr, warum ein einzelner Update so langsam ist. Wird pro Update nur jeweils 1 Row geändert ? Liegt auf der zu Updaten Spalte ein Index ?

Gruss

warum ein einzelner Update so langsam ist.

Ich führe das auf die schiere Menge der DB-Sätze zurück...

Wird pro Update nur jeweils 1 Row geändert ?

Unterschiedlich - mal gar keine, mal mehrere Tausend.

Liegt auf der zu Updaten Spalte ein Index ?

Leider nicht, die Ecke der Datenbank wird nicht so oft durchwühlt. Die zu ändernden Spalten sind auch normalerweise nicht in Abfragen einbezogen

Leider nicht, die Ecke der Datenbank wird nicht so oft durchwühlt. Die zu ändernden Spalten sind auch normalerweise nicht in Abfragen einbezogen

Dann würde ein Index auf dies Spalte + Genererieren der Statistiken helfen, denke ich

Gruss

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.