AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken ORACLE 11: DELETE sehr langsam
Thema durchsuchen
Ansicht
Themen-Optionen

ORACLE 11: DELETE sehr langsam

Ein Thema von Furtbichler · begonnen am 20. Nov 2012 · letzter Beitrag vom 21. Nov 2012
Antwort Antwort
Seite 2 von 2     12   
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#11

AW: ORACLE 11: DELETE sehr langsam

  Alt 21. Nov 2012, 05:25
Hallo,

Ich würde mir doch mal den Query-Plan ansehen.


Heiko
Heiko
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#12

AW: ORACLE 11: DELETE sehr langsam

  Alt 21. Nov 2012, 06:49
Stimmt, hab gestern danach gegoogelt und gesehen, wie das geht. Habe es nur noch nie gemacht. Aber es gibt ja immer das erste Mal.

Bin aber noch im Delirium.
  Mit Zitat antworten Zitat
Morphie

Registriert seit: 27. Apr 2008
Ort: Rahden
630 Beiträge
 
#13

AW: ORACLE 11: DELETE sehr langsam

  Alt 21. Nov 2012, 07:18
Ich musste neulich auch mal in einer MySQL Datenbank 99,9% aller Datensätze (ca. eine Million) löschen. (Die Tabelle verfügt über sehr viele Indizes)
Nach ca. 2 Stunden habe ich den Vorgang frustriert abgebrochen, habe eine leere, identische Tabelle angelegt, die gewünschten Datensätze über SQL rüber kopiert und den Rest mittels "TRUNCATE TABLE" gelöscht. Da war die Dauer zum Löschen kaum messbar...

Hätte ich das mal vorher gemacht...
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#14

AW: ORACLE 11: DELETE sehr langsam

  Alt 21. Nov 2012, 07:58
Ich vermute mal, dass es ein wiederkehrendes Problem ist, sonst muss man sich wohl nicht groß den Kopf zerbrechen.

Das Löschen kann schon sehr lange dauern. Die Löschanweisung auf einem nicht indizierten Feld bedeutet zuerst mal einen Fullscan.
Dann ist die Frage, wieviel Datensätze betroffen sind.
1 oder 500T?

Ausführungsplan
Es wäre zu prüfen, ob regelmäßig (nächtlich) Statistiken aktualisiert werden bzw. ein planmäßiges Vorgehen da ist.
Wenn Statistiken aktualisiert werden, muss sichergestellt sein, dass auch die Indizes einbezogen werden.
Andernfalls kommt eben Schrott raus.

Im Datenmodell wäre zu prüfen, ob FK auf die Tabelle zeigen oder sie selber Fremdbezüge hat, Cascade Constraints definiert sind usw.
All das bedeutet keinen Geschwindigkeitszuwachs.

Indizes
können gedropped werden oder "abgeschaltet"
Code:
ALTER INDEX myIndex UNUSABLE;
[delete]
ALTER INDEX myIndex rebuild (online)
Beim Thema Indizes wäre noch zu überlegen, welches DML Verhalten auf der Tabelle existiert. Viele Inserts, Deletes wirken sich negativ auf den Index aus. PCTFree usw können auch hier vielleicht lindern. Ein Index der immer voll gepackt wird, kommt nicht gut mit Änderungen klar.

Dann wäre noch die Frage, was während des Löschens noch/sowieso schon läuft und welcher User die Löschanweisung ausführt und in welchem Kontext (ora scheduler, OS Cronjob, ..).
Gibt es konkurrierende Last auf dem System?
Laufen (nachts) bspw. zeitgleich Jobs via Scheduler (z.B. Statistiken sammelen, haha), zieht der Löschjob ggF den kürzeren.
Gruß, Jo
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#15

AW: ORACLE 11: DELETE sehr langsam

  Alt 21. Nov 2012, 18:06
Hallo,

Heute hatte ich die Hucke voll zu tun und bin erst kurz vor Feierabend dazu gekommen, mir das Problem näher anzuschauen. Also: Es gibt 6 Indexe, keine Foreign Key Constraints auf die Tabelle. Ich denke, ich kürze das einfach ab:

Temp Tabelle erstellen, drop die Originaltabelle, rename die temp in die Originaltabelle, indexe neu erstellen. sollte funzen und schnell genug sein.

Edit: Achso, Mensch: Vielen Dank für die tollen Beiträge.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:06 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz