Hallo > Damit die Referentielle Integrit�t schnell bearbeitet werden kann, > braucht's halt einen Index. Je nach Modus sind halt unterschiedliche > Indizes erforderlich. Du hast wohl angegeben, dass Daten�nderungen in > der Referenztabelle an die Haupttabelle weitergegeben werden sollen; > deshalb wird auch in der Tabelle 1 ein Index angelegt, damit eine > �nderung der ID in Tabelle 2 auch schnell an die Tabelle1 > weitergegeben > werden kann. Man k�nnte darauf verzichten, weil es ja > AutoInkrement-Werte sind, aber dann kann man ja auch auf die > automatische Aktualisierung verzichten. Und hast Du noch nie eine ID > tempor�r in eine Zahl umgewandelt, damit Du darin rumpfuschen kannst? Einen Index auf der "Linken" Seite braucht es nur in 2 F�llen: Aktualisieren des Index Wertes rechts L�schen des Records (Indexes) rechts
Habe Aktualisier und L�schweidergabe ausgeschaltet. Somit bleibt nur noch der Fall, dass Rechts ein Record gel�scht wird. In diesem Falle muss nun das DBMS schauen, ob links ein Fremdschl�ssel auf den zu l�schenden Record besteht. In dem falle (ausser L�schweitergabe) kann der rechte Record nicht gel�scht werden. In dem Falle kann man sehr gut ohne Ref. Integrit�t leben. Beim Erfassen der Daten muss man ja so oder so validieren, ob der Fremdschl�ssel existiert. Da AutoIndex kann der Index Rechts nicht ge�ndert werden. Wird der Record rechts gel�scht geh�rt meiner Meinung nach bei einem guten Programmierstyl eh noch eine kurze Abfrage hinzu, ob nicht ev. noch Links Fremdschl�ssel existieren, welche darauf hin zeigen. Das Problem ist hier denn nat�rlich, dass man (wie du sagst) nicht weiss, ob nicht mal auch ne andere Software auf den Datenbenstand zugreifft. Aber echt... f�r Ref. Integrit�t ohne Aktualisier oder L�schwiedergabe einfach kurz rasch einen Index erstellen finde ich ein bisschen einen Overkill... sollte dem User �berlassen sein, ob ein Index erstellt werden soll, oder nicht. Gesetzten Falles: Links: 1'000'000 Datens�tze; ofte Mutationen Rechts 1000 Datens�tze, beinahe keinerlei Mutationen. Da macht ein Index auf dem Fremdschl�ssel Links echt keinen Sinn. Bremst nur aus. Wird dann mal tats�chlich ein Record rechts gel�scht, muss das DBMS dann halt die gesammten 1'000'000 Datens�tze absuchen, aber kann immer noch performancem�ssig gescheiter sein, als immer einen unn�tigen Index pflegen. Wenn ihr mich fragt, sollte der User die m�glichkeit haben, hier nach bedarf einen Index zu erstellen, oder auch nicht. MfG | [aspdedatabase] als [email protected] subscribed | http://www.aspgerman.com/archiv/aspdedatabase/ = Listenarchiv | Sie k�nnen sich unter folgender URL an- und abmelden: | http://www.aspgerman.com/aspgerman/listen/anmelden/aspdedatabase.asp
