Alles, was ich jemals wissen musste, habe ich im Kindergarten gelernt, richtig? Das dachte ich, und ich war verdammt gut im Teilen, bis ich plötzlich die Jet-Replikation verwendete und entdeckte, dass braves Teilen manchmal keine gute Sache für die Performance einer Anwendung ist. Was ich damit meine? Naja, lesen Sie weiter...
Die Situation ist schnell erklärt: Sie haben eine Anwendung, die gut arbeitet, Sie replizieren sie, und plötzlich, bei einfachen Vorgängen wie dem Öffnen einer Tabelle, geht die Performance den Bach hinunter... in manchen Fällen beginnt jedesmal das Floppy oder CD-Rom-Laufwerk zu rotieren. Sie sind kurz davor, sich die Haare einzeln auszureißen, oder (wenn Sie keine Haare haben) die Datenbank zu entreplizieren, falls sich das nicht stoppen lässt!
Die Antwort ist einfach.... teilen Sie Ihre Laufwerke nicht mehr!
Ja, so ist es. Aufgrund der Art und Weise, wie der Replication Tracking Layer von Microsoft Jet mit der Information umgeht, dass Replikate wie
\\MACHINE\C$\foo.mdb
\\MACHINE\CROOT\foo.mdb
C:\foo.mdb
H:\foo.mdb (<--gemapped auf einen der obigen UNC-Pfade)
tatsächlich die gleichen Replikate sind, verrichtet er einiges an Arbeit (mancher wird sagen, zu viel Arbeit!), um die Share-Info auf der Maschine zu klären, damit er weiß, was all diese Freigaben bedeuten. Wegen der Art, wie Access einige *seiner* Jobs implementiert und wie es Jet aufruft, sie zu erledigen, kann dieses Überprüfen wesentlich öfter stattfinden, als Sie möchten. :-(
Bei freigegebenen Verbindungen zu anderen Maschinen, besonders, wenn die andere Maschine nicht verfügbar ist, können die internen Aufrufe von WNet*-Funktionen die Performance schwächen. Bei lokalen Freigaben ist das nicht so schlimm, außer Sie haben ein CDROM oder ein Floppy freigegeben. Dann ist die Performance-Einbuße wieder spürbar und kann wirklich lästig sein.
Wie können Sie diesem Problem begegnen? Vermeiden Sie es nach Möglichkeit bei Computern, auf denen eine Anwendung mit Replikation läuft, CDROM und Disketten-Laufwerke freizugeben, und vermeiden Sie es möglichst, Laufwerke im Netzwerk zu mappen, v.a. langsame (verwenden Sie stattdessen UNC-Pfade). Das wird Ihnen den schlimmen Einbruch bei der Performance ersparen, der passieren kann, wenn man brav teilt. :-)