Re: physikalische Datenbank-Struktur

From: Wolfgang Enzinger (6580-6851_at_centermail.net)
Date: 06/11/04


Date: Fri, 11 Jun 2004 13:53:41 +0200

Hallo Elmar,

>>> Aber, du kannst in einer
>>> Access-Datenbank Links auf Tabellen einer anderen Access-Datenbank
>>> (oder dBase, oder Text, ...) setzen und dann mit der ersten
>>> Datenbank arbeiten und sowohl die Tabellen der ersten Datenbank als
>>> auch die verlinkten Tabellen gemeinsam (z.B. JOIN) nutzen.
>>
>> Wie schaut das Performance-mäßig aus gegenüber einer "singulären"
>> Datenbank?
>
>Kein grosser Unterschied, Access macht schlicht und einfach eine
>weitere Datei auf.

kommt vielleicht auf die Art des Zugriffs an, aber zumindest mit DAO
3.51 und Access97-DBs habe ich da z.T. erhebliche Performance-Einbussen
feststellen müssen. Das Problem liegt m.E. hauptsächlich an zweierlei
(im Weiteren sei DB1 die "Haupt-"Datenbank, die die Verknüpfungen
enthält, deren Ziel-Tabellen in DB2 liegen):

* für DB1 wird bei jeder Abfrage ein Eintrag in die zugehörige .ldb
gemacht und dieser anschliessend wieder als ungültig markiert, resp.
diese .ldb überhaupt erst angelegt und anschliessend wieder gelöscht.

* der superschnelle Zugriff in DB1 auf die verknüpfte Tabelle mittels
Recordset vom Typ Table und der Seek-Methode ist nicht möglich.

Deutliche Verbesserungen konnte ich feststellen, wenn meine Programme
nicht nur eine dauerhafte Verbindung mit DB1 offenhalten, sondern auch
mit DB2, auch wenn ich diese Verbindung weiter gar nicht nutze. Damit
ist schon mal sichergestellt, das DB2 eine .ldb und mein Prozess darin
einen Eintrag hat. Zum anderen kann ich dann an zeitkritischen Stellen
direkt mit Seek auf Tabellen in DB2 zugreifen - dazu braucht's dann
natürlich ein paar Anpassungen im Code.

-- 
Viele Grüsse,
Wolfgang
http://www.enzinger.net


Relevant Pages