Discussion:
Tabellenverknüpfung übers Netzwerk sehr langsam
(zu alt für eine Antwort)
Thomas Metzlaw
2005-06-02 07:18:45 UTC
Permalink
Hallo zusammen,

ich habe ziemliche Probleme mit Verknüpften Tabellen, die auf ein
Netzlaufwerklaufwerk oder UNC-Pfad verweisen.
Die Datenbank wird dadurch extrem langsam. Wenn ich die verknüpfte Tabelle
öffne dauert es ca. 3 - 10 Sekunden,
bis die Tabelle angezeigt wird. Ist die Tabelle mit einer lokale
BE-Datenbank verknüpft, ist die Tabelle beim Anklicken sofort da.

Vielleicht ein Hinweis zur Fehleranalyse:
Als ich die Datenbank mit dem Assistenten aufteilen wollte, ist der
Assistent abgestürzt (reagierte nicht mehr). Habe die
Aufteilung dann manuell vorgenommen. (Tabellen in die BE-Datenbank
importiert und in der Original-DB gelöscht, danach verknüpft)

Verwendetes System:
Windows XP Prof.
Access XP

MFG

Thomas
Henry Habermacher [MVP Access]
2005-06-02 07:54:21 UTC
Permalink
Hallo Thomas
Post by Thomas Metzlaw
ich habe ziemliche Probleme mit Verknüpften Tabellen, die auf ein
Netzlaufwerklaufwerk oder UNC-Pfad verweisen.
Die Datenbank wird dadurch extrem langsam. Wenn ich die verknüpfte
Tabelle öffne dauert es ca. 3 - 10 Sekunden,
bis die Tabelle angezeigt wird. Ist die Tabelle mit einer lokale
BE-Datenbank verknüpft, ist die Tabelle beim Anklicken sofort da.
Als ich die Datenbank mit dem Assistenten aufteilen wollte, ist der
Assistent abgestürzt (reagierte nicht mehr). Habe die
Aufteilung dann manuell vorgenommen. (Tabellen in die BE-Datenbank
importiert und in der Original-DB gelöscht, danach verknüpft)
Windows XP Prof.
Access XP
Eine gewisse Verzögerung ist normal. Was setzt Du als Netzwerk ein? Vorallem
die Geschwindigkeit und die Verfügbarkeit des Servers ist hier erst mal
ausschlaggebend.

Dann solltest Du statt des UNC Pfades besser Netzwerklaufwerke und
Pfad/Dateinamen in der 8.3 Konvention verwenden. Das geht erheblich
schneller.

Schlussendlich ist es gerade bei verknüpften Tabellen im Netzwerk sehr
wichtig, dass Du da die richtigen Indices über die Tabellen gelegt hast und
nicht alle Datenfelder auf einmal einliest. Du solltest daher nicht die
Geschwindigkeit beim Öffnen der Tabellen, sondern beim Öffnen von Formularen
und Berichten untersuchen. Die dahinter liegenden Abfragen müssten dann
optimiert werden, wenn es zu langsam geht. Weitere Möglichkeiten sind das
Late Binding von Steuerelementen wie List/Combobox und Unterformulare auf
Registern, die nicht angezeigt werden. Es macht keinen Sinn, diese Daten
bereits beim Öffnen des Formulares einzulesen, das kannst Du auch dann
machen, wenn der Benutzer die Daten wirklich braucht, also beim
Registerwechsel für UFOs in Registern, rsp. beim Hingehen zu Listboxen und
Controlboxen.

Des weiteren solltest Du kontrollieren, dass Du die Feldnamen Autokorrektur
ausgeschaltet hast. Zusätzlich, insbesondere, wenn Du im Mehrbenutzerumfeld
arbeitest, solltest Du mal bei Tony Toews die Access Performance FAQ (unter
diesen Stichworten oder wohl auch in der FAQ auffindbar) durchlesen. Weitere
Hinweise findest Du in einem Whitepaper, dass es beim www.dbdev.org im
Download bereicht gibt: "Betrieb von Access Anwendungen".

Wenn alles nichts nützt, dann einen SQL Server oder die MSDE einsetzen und
die Access Anwendung für diesen optimieren. Das kann durchaus mit Jet
gemacht werden, solange einige Grundregeln berücksichtigt werden.

Viel Erfolg beim tunen.

Gruss
Henry
--
Keine E-Mails auf Postings in NGs senden!
Don't send e-mails to postings in newsgroups!
KB: http://support.microsoft.com/default.aspx
FAQ: http://www.donkarl.com (neu mit Suchfunktion!)
OH: Online Hilfe von Microsoft Access (Taste F1)
Downloads: http://www.dbdev.org
Thomas Metzlaw
2005-06-03 07:02:10 UTC
Permalink
Hallo Henry,

ich glaube, dass mir Dein Tipp leider nicht weiterhilft.
Wenn ich in der Haupt DB bin und eine verknüpfte Tabelle aufrufe, (über das
Datenbankfenster und nicht! über eine Form)
dauert der Aufruf schon wesentlich länger als wenn die Tabelle in der
gleichen DB liegt bzw. wenn die verknüpfte Tabelle nicht über
ein Netzwerklaufwerk oder UNC-Pfad oder IP-Adresse verknüpft sondern lokal
verknüpft ist.

Beim SQL-Server gibt es eine Einstellung, bei der man die
Netzwerkeinstellungen auf TCP/IP, Named Pipes usw. ändern kann.
Ist soetwas unter Access auch möglich? Denn es schein eine
Verbindungsproblem zu sein. Falls jetzt der Gedanke aufkommt das es am
Netzwerk liegt,
habe ich auch zuerst gedacht. Netz is IO 100MBit Vollgeswitcht und keine
Last im Netz.

PS: Das Problem taucht übrigens auch auf, wenn die BE-Tabelle zwar auf dem
selben Rechner liegt aber auch über ein Netzpfad angesprochen wird.

Ich würde mich freuen, wenn jemand noch eine Idee hätte.

VG

Thomas
Post by Henry Habermacher [MVP Access]
Hallo Thomas
Post by Thomas Metzlaw
ich habe ziemliche Probleme mit Verknüpften Tabellen, die auf ein
Netzlaufwerklaufwerk oder UNC-Pfad verweisen.
Die Datenbank wird dadurch extrem langsam. Wenn ich die verknüpfte
Tabelle öffne dauert es ca. 3 - 10 Sekunden,
bis die Tabelle angezeigt wird. Ist die Tabelle mit einer lokale
BE-Datenbank verknüpft, ist die Tabelle beim Anklicken sofort da.
Als ich die Datenbank mit dem Assistenten aufteilen wollte, ist der
Assistent abgestürzt (reagierte nicht mehr). Habe die
Aufteilung dann manuell vorgenommen. (Tabellen in die BE-Datenbank
importiert und in der Original-DB gelöscht, danach verknüpft)
Windows XP Prof.
Access XP
Eine gewisse Verzögerung ist normal. Was setzt Du als Netzwerk ein?
Vorallem die Geschwindigkeit und die Verfügbarkeit des Servers ist hier
erst mal ausschlaggebend.
Dann solltest Du statt des UNC Pfades besser Netzwerklaufwerke und
Pfad/Dateinamen in der 8.3 Konvention verwenden. Das geht erheblich
schneller.
Schlussendlich ist es gerade bei verknüpften Tabellen im Netzwerk sehr
wichtig, dass Du da die richtigen Indices über die Tabellen gelegt hast
und nicht alle Datenfelder auf einmal einliest. Du solltest daher nicht
die Geschwindigkeit beim Öffnen der Tabellen, sondern beim Öffnen von
Formularen und Berichten untersuchen. Die dahinter liegenden Abfragen
müssten dann optimiert werden, wenn es zu langsam geht. Weitere
Möglichkeiten sind das Late Binding von Steuerelementen wie List/Combobox
und Unterformulare auf Registern, die nicht angezeigt werden. Es macht
keinen Sinn, diese Daten bereits beim Öffnen des Formulares einzulesen,
das kannst Du auch dann machen, wenn der Benutzer die Daten wirklich
braucht, also beim Registerwechsel für UFOs in Registern, rsp. beim
Hingehen zu Listboxen und Controlboxen.
Des weiteren solltest Du kontrollieren, dass Du die Feldnamen
Autokorrektur ausgeschaltet hast. Zusätzlich, insbesondere, wenn Du im
Mehrbenutzerumfeld arbeitest, solltest Du mal bei Tony Toews die Access
Performance FAQ (unter diesen Stichworten oder wohl auch in der FAQ
auffindbar) durchlesen. Weitere Hinweise findest Du in einem Whitepaper,
dass es beim www.dbdev.org im Download bereicht gibt: "Betrieb von Access
Anwendungen".
Wenn alles nichts nützt, dann einen SQL Server oder die MSDE einsetzen und
die Access Anwendung für diesen optimieren. Das kann durchaus mit Jet
gemacht werden, solange einige Grundregeln berücksichtigt werden.
Viel Erfolg beim tunen.
Gruss
Henry
--
Keine E-Mails auf Postings in NGs senden!
Don't send e-mails to postings in newsgroups!
KB: http://support.microsoft.com/default.aspx
FAQ: http://www.donkarl.com (neu mit Suchfunktion!)
OH: Online Hilfe von Microsoft Access (Taste F1)
Downloads: http://www.dbdev.org
Josef Poetzl
2005-06-03 07:26:16 UTC
Permalink
Hallo!
Post by Thomas Metzlaw
Hallo Henry,
ich glaube, dass mir Dein Tipp leider nicht weiterhilft.
Und ich glaube Dir nicht, dass Du schon alle Tipps von Henry
ausprobiert hast. ;-)
Post by Thomas Metzlaw
Wenn ich in der Haupt DB bin und eine verknüpfte Tabelle aufrufe, (über das
Datenbankfenster und nicht! über eine Form)
Die Tabelle ist "optimiert"?
(keine Nachschlagefelder, kein Unterdatenblatt)
Post by Thomas Metzlaw
dauert der Aufruf schon wesentlich länger als wenn die Tabelle in der
gleichen DB liegt ...
Die Objektnamen-Autokorrektur hast Du aber nicht mehr aktiviert, oder?
Post by Thomas Metzlaw
... bzw. wenn die verknüpfte Tabelle nicht über
ein Netzwerklaufwerk oder UNC-Pfad oder IP-Adresse verknüpft sondern lokal
verknüpft ist.
Wie Henry schon geschrieben hat: "Eine gewisse Verzögerung ist
normal."
Post by Thomas Metzlaw
Beim SQL-Server gibt es eine Einstellung, bei der man die
Netzwerkeinstellungen auf TCP/IP, Named Pipes usw. ändern kann.
Ist soetwas unter Access auch möglich?
Du kannst die IP-Adresse statt dem UNC-Pfad verwenden.
Post by Thomas Metzlaw
Denn es schein eine
Verbindungsproblem zu sein.
Es hängt von vielen Faktoren ab.
Unter http://joposol.com/ept?E08 habe ich einige Referenzen zum Thema
Performance zusammengestellt.

mfg
Josef
--
EPT: (Access Error Prevention Table) http://access.joposol.com/
FAQ: (Access-FAQ von Karl Donaubauer) http://www.donkarl.com/
Anton Huber
2005-06-02 11:55:16 UTC
Permalink
"Thomas Metzlaw" threw this exception:

Hi,
Post by Thomas Metzlaw
ich habe ziemliche Probleme mit Verknüpften Tabellen, die auf ein
Netzlaufwerklaufwerk oder UNC-Pfad verweisen.
Die Datenbank wird dadurch extrem langsam. Wenn ich die verknüpfte Tabelle
öffne dauert es ca. 3 - 10 Sekunden,
bis die Tabelle angezeigt wird. Ist die Tabelle mit einer lokale
BE-Datenbank verknüpft, ist die Tabelle beim Anklicken sofort da.
Henry hat Dich ja mal ordentlich mit Infos 'überfallen' ;-), die
sollten erstmal aufgearbeitet werden.

Was ähnliches habe ich auch schon mal bemerkt. Nur war
bei mir die Konstellation etwas anders. Aber egal, die von dir
genannten Schwierigkeiten könnten gegebenenfalls mit
dem locking von Access zu tun haben. Hierbei bietet es sich
an ein 'Dummyrecordset' im FE auf eine 'DummyTabelle' im BE
zu öffnen sobald die DB-Anwendung bestartet wird und zu
schliessen alsbald die Anwendung geschlossen wird.
Entweder hast Du sowieso ein Form das die ganze Zeit
über offen ist oder du öffnest ein verstecktes Form
automatisch beim Start!


Gruss
Anton
--
Aber wieso? Gestern ging's doch noch!
Loading...