Zum Inhalt springen

SQL DML multiple Updates - ein Statement?


Empfohlene Beiträge

Geschrieben

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.

Geschrieben
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

Geschrieben

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

Geschrieben

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

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...