Thema: Delphi Insert into

Einzelnen Beitrag anzeigen

jobo

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

AW: Insert into

  Alt 4. Sep 2020, 10:36
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
Wieso muß man immer gleich löschen?

Viele DBMS bieten es an Indize umd vor allem Constraint zu deaktivieren
und anschließend mit oder ohne Prüfung wieder anzuschalten.

Ohne = falsche Constraint werden erlaubt und werden erst beim nächsen EDIT des jeweiligen Datensatzes wieder geprüft.
..
Das ist glaub ich nicht ganz richtig. Ein Constraint existiert ganz allgemein erstmal ohne Index, nur seine Prüfung ist mit Index oft viel schneller. Das kommt darauf an, ob
1. überhaupt ein xy Key Constraint (primär oder fk) genutzt wird oder ein bloßer Value Constraint (im gleichen Datensatz)
2. das RDBMS die Handhabung von Key Constraints und Indizierung sauber trennt

Gerade 2. ist leider nicht immer gegeben und sehr unterschiedlich "komfortabel" realisiert, je nach Hersteller. Das Löschen eines Constraints löscht also den Index und vielleicht auch umgekehrt(?). Auch (deffered) Aktivierung / Deaktivierung ist meines Wissens nicht überall verfügbar.
Gute Systeme können bspw. (alte) bestehende Indizes nutzen, um neue (oder sich selbst) neu aufzubauen, den Aufbau parallelisieren, ...

Aber das geht schon etwas weit vom Thema ab.
Gruß, Jo
  Mit Zitat antworten Zitat