Forum: Datenbanken
Delphi
by Delphi.Narium,
4. Sep 2020
Prinzipiell hast Du recht, das aber zeigt doch, wie komplex das Problem hinter der eigentlich einfachen Fragestellung ist.
Forum: Datenbanken
Delphi
by Delphi.Narium,
4. Sep 2020
Also "löschen" ist etwas "hart" formuliert.
Sagen wir so: Es könnte eventuell hilfreich sein, die für das entsprechende Datenbanksystem sinnvollste und am wenigsten aufwendige Möglichkeit der vorübergehenden Nichtnutzung der für die konkrete Aufgabe entbehrlichen Indizes zu wählen.
Hängen an Indizes irgendwelche Abhängigkeiten, die für die korrekte Speicherung von Daten erforderlich sind,...
Forum: Datenbanken
Delphi
by Delphi.Narium,
3. Sep 2020
Kommt wohl drauf an, quasi so 'ne Art "Entschiedenes sowohl als auch".
Der Index muss sofort aktuallisiert werden (jedenfalls bei der Vorgehensweise, wie sie hier genutzt wird), damit im Trigger eine entsprechende Abfrage den gerade eingefügten Wert auch wiederfinden kann. Hier wird er sofort für eine Summenbildung in 'ner anderen Tabelle benötigt (select sum(spalte) from tabelle where ...,...
Forum: Datenbanken
Delphi
by Delphi.Narium,
3. Sep 2020
Wenn man große Datenmengen in 'ne Tabelle einfügt, kann es durchaus hilfreich sein, alle für das Insert nicht benötigten Indices zu löschen und nachher neu zu erstellen. Auch wenn die Neuerstellung sicherlich etliches an Zeit benötigt, so kann es duchaus passieren, dass diese Zeit deutlich kürzer ist, als die permanente Indexpflege während der Inserts.
Erfahrungsgemäß reden wir hier nicht von...
Forum: Datenbanken
Delphi
by Delphi.Narium,
2. Sep 2020
Bei allen SQLs, egal ob Select, Insert, Update, Delete mal den Ausführungsplan anschauen.
Bei Statements, die nur einen Satz "anpacken", sollte ein entsprechender Index genutzt werden. Fehlt der, wird jedesmal die gesamte Datenbank "durchgegraben" (Full Table Scan). Und sowas (schlimmstenfalls mehrfach) in einem Trigger pro Datensatz: Jo, das kann dann schonmal dauern, da wären die von Dir...