Member
Beiträge: 11
Ort: Regensburg | Hallo zusammen,
ich möchte hier einmal eine Frage ins Forum geben, zu der ich bisher noch keine konkrete Aussage gefunden habe:
Eine 1:n Beziehung auf Datenbankebene wird typischerweise zwischen dem Primärschlüsselfeld der Master- und dem Fremdschlüsselfeld der Detailtabelle hergestellt.
Die Frage ist nun:
Wird bei einer Beziehung ohne refernzielle Integrität automatisch ein Index für das Fremdschlüsselfeld angelegt ? Das wäre zu erwarten, da die Zugriffe auf die Detailtabelle ja über den Fremdschlüssel erfolgen und diese möglichst schnell sein soll(t)en.
Nur bei aktivierter referfernzieller Integrität gibt es in der Indexes-Auflistung der der Detailtadelle einen entsprechenden Index/Constraint mit Eigenschaften Foreign=True und Unique=False. Davon ist aber in den Indexeinstellungen von Access (Tabellenentwurf/Indizes) allerdings nichts zu sehen.
Die Frage ist aber, was passiert ohne referentielle Integrität , arbeitet die ACE dann tatsächlich ohne Index mit sequentiellem Zugriff ?
Wäre interessant, was ein entsprechender Performance-Test ergibt, hat das vielleicht schon mal jemand ausprobiert ?
Hier noch die Prozedur zur Indexes-Auflistung :
Sub ShowIndizes(TblName As String)
Dim db As DAO.Database, tdf As DAO.TableDef
Dim ix As DAO.Index, pr As DAO.Property
Set dbs=CurrentDb()
Set tdf = dbs.TableDefs(TblName)
Debug.Print "Tabelle: "; TblName
For Each ix In tdf.Indexes
Debug.Print ix.Name; "Felder: "; ix.Fields
For Each pr In ix.Properties
Debug.Print , pr.Name, pr.Value
Next pr
Next ix
Debug.Print
dbs.close
End Sub
|