Einzelnen Beitrag anzeigen

jobo

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

AW: Delete-Abfrage optimieren?

  Alt 2. Dez 2016, 12:19
Die meisten RDBMS sind per Default nicht dafür konfiguriert, schnell löschen zu können. Falls es eine einmalige Sache ist (Migration) oder so, muss man da einfach durch.
Was u.a. je nach Datenmodell viel Last produzieren kann, ist nicht primär das Löschen der Datensätze selbst, sondern die zugehörige Überwachung von Constraints bzw. foreign key Constraints und das nachziehen (all) der zugehörigen, abhängigen Indices.
Abhilfe würde demnach verschaffen, solche Constraints zu deaktivieren oder zu löschen, ebenso alle "Nebenindices" der zu löchenden Tabelle, die nichts mit den Foreign Keys zu tun haben, sondern lediglich irgendwelche Suchen beschleunigen.
Anschließend dann neu anlegen (Constraints, Indices).
Constraints zu löschen, birgt natürlich ein gewisses Risiko.

Als weiche Maßnahme würde es ggF. auch helfen, vorhandene Untermengen (laut foreign keys), separat bzw. zuerst/unabhängig zu löschen.

P.S.:
Kenne mich mit FB in der Praxis nicht so aus, vlt taugt sowas in der Art, um gezielt Indices zu aktivieren / deaktivieren:
http://www.firebirdfaq.org/faq274/
Gruß, Jo

Geändert von jobo ( 2. Dez 2016 um 12:24 Uhr)
  Mit Zitat antworten Zitat