Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Performance-Fragen (Netzwerk)
zurück: Wert nach Button-Klick setzen weiter: Textfeld hintergrundfarbe Steuern? Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Rhett
Syntax-Sucher


Verfasst am:
18. Apr 2008, 16:03
Rufname:
Wohnort: z.Zt. Bayern/Flughafen München

Performance-Fragen (Netzwerk) - Performance-Fragen (Netzwerk)

Nach oben
       Version: Office XP (2002)

Im Backend (Server) liegt eine große Haupttabelle mit ca. 90 Feldern und 16.000 Datensätzen.
Auf den Frontends existieren Abfragen als Datenquelle für ein Endlosformular, die ca. 20 dieser Felder auswählen und dynamisch (nach Benutzereingabe) sortieren und selektieren.
- Solange nur auf 1 Client das Programm geöffnet ist, erfolgen die Aktualisierungen des Endlosformulars praktisch sofort.
- Wenn ein 2. Client das Programm öffnet und sich das Endlosformular zunächst nur ansieht bzw. nur Datensätze auswählt, ohne sie zu verändern, sinkt die Reaktionsgeschwindigkeit zwar schon deutlich, ist aber noch erträglich.
- Sobald jedoch irgendein Datensatz geändert wurde, dauert es von da an jedesmal mehrere Sekunden, bis eine neue Sortierung oder Selektion wirksam wird.

Alle Sortierfelder sind indiziert.
Nicht nur auf Formularebene, sondern bereits beim Anzeigen der zugrundeliegenden Abfrage dauert es so lange. Es genügt nicht einmal, die Abfrage und das betreffende Formular zu schließen und neu zu öffnen.
Erst wenn man die ganze Datenbank geschlossen und neu geöffnet hat, kommt man wieder auf normale Reaktionszeiten.
Demnach muß also irgendwie das Recordset offengehalten bleiben, obwohl kein Objekt geöffnet ist, das auf dieses Recordset zugreift. Was jedoch passiert beim Schließen und neuem Öffnen der Datenbank, was beim Schließen der betr. Objekte zur Laufzeit nicht geschieht?
Was kann man sonst tun? (Außer die Anzahl der DS oder Anzahl der Felder/Steuerelemente zu verringern. Beides ist ausgeschlossen.)
JörgG
Access-Team


Verfasst am:
19. Apr 2008, 10:22
Rufname:
Wohnort: b. Dresden


AW: Performance-Fragen (Netzwerk) - AW: Performance-Fragen (Netzwerk)

Nach oben
       Version: Office XP (2002)

Hallo,

arbeitest Du viel mit Recordsets, dann lege diese neue Instanz global gleich beim Öffnen der DB an, bringt ca 20% Performance. Beachte, diese Globalen beim Schliessen der DB ordnungsgemäss freizugeben (Close/Nothing), sonst bleibt uU ein AC Task hängen.

_________________
MfG, Jörg Very Happy

Bitte das Feedback nicht vergessen.
Rhett
Syntax-Sucher


Verfasst am:
19. Apr 2008, 16:36
Rufname:
Wohnort: z.Zt. Bayern/Flughafen München

AW: Performance-Fragen (Netzwerk) - AW: Performance-Fragen (Netzwerk)

Nach oben
       Version: Office XP (2002)

Hallo Jörg,
gute Idee, werde ich mal einarbeiten. Aber das Performance-Problem bei meiner großen, verknüpften Tabelle hat scheinbar gar nichts mit VBA zu tun. Selbst wenn ich eine DB erstelle, die nur eine Verknüpfung zu dieser einen Tabelle enthält, sowie eine Abfrage, in der ich nur ein einziges Feld selektiere und nach diesem sortieren möchte - aufsteigend - absteigend .... es dauert ... und dauert ...

Was kann denn am Aufbau der Tabelle falsch sein? Zuviele Indizes? Irgendwo in der OH einer früheren Access-Version glaube ich gelesen zu haben, sinngemäß: Sortierungen usw. werden beschleunigt, aber die Anzeige großer Tabellen kann durch Indizes länger dauern. (Womit der Vorteil zugleich auch der Nachteil wäre.)
Aber jetzt habe ich auch die Anzahl der Indizes schon wieder auf 3 (incl. Primärschlüssel, nach dem normalerweise nicht sortiert wird) reduziert und teste nur mit 2 dieser Felder. Keine Verbesserung, trotz allem Minimalismus ....

Bleibt da nur noch die SQL-Datenbank? Wobei die OH beim Thema "Verbessern der Leistung von verknüpften Tabellen" Verknüpfungen zu SQL-Server ausdrücklich mit einschließt, als gäbe es da keinen Unterschied. Was da sonst noch steht (auch zu Mehrbenutzerumgebung), habe ich längst alles beachtet. Gibt es sonst noch irgendwelche Tricks?
MAPWARE
Access Profi(l)neurotiker


Verfasst am:
21. Apr 2008, 16:19
Rufname:
Wohnort: Hannover

AW: Performance-Fragen (Netzwerk) - AW: Performance-Fragen (Netzwerk)

Nach oben
       Version: Office XP (2002)

Hallo Rhett,

das eine Tabelle 16000 Datensätze ist normal und sogar wenig.
Das eine Tabelle 90 Spalten halt ist schon recht heftig. Je nach Datentyp steht da schon ganz ordentlich was drin. Vielleicht ist aber auch das Netzwerk nicht in Ordnung.
Bei den von Dir geschilderten Mengen war Access 2.0 um 1997 bei 10 Benutzern gleichzeitig noch super flink (eigene Erfahrung Razz) . Da Access aber das RecordLocking in der LDB Datei erledigt, darf das Netzwerk nicht langsam sein. Ich hab das schon oft erlebt, das das Netzwerk grausamste Performance zeigte, das aber keinen auffiel, weil alle nur ein mal pro Tag ne Word Datei mit 200kb auf und zu gemacht haben. Kopiere einfach mal eine große Datei 1GB oder so zum Server und wieder zurück. Deaktiviere auch mal den lokalen Virenscanner.

Indizes sind ziemlich egal bei Deinen Datenmengen und den von Dir beschriebenen Aufgaben. 16.000 Zeilen sind nix. Indizes beschleunigen alle Abfragen. Der Nachteil ensteht erst, wenn Daten eingefügt werden, denn dann müssen die Indizes ja alle mit erstellt werden. Das die Anzeige großer Tabellen durch die Existenz von Indizes langsamer würde habe ich noch nie erlebt.

_________________
Grüße
Marcus

Wer Controls nicht sinnvoll benennt, wird es später bereuen.
Rhett
Syntax-Sucher


Verfasst am:
23. Apr 2008, 00:04
Rufname:
Wohnort: z.Zt. Bayern/Flughafen München


AW: Performance-Fragen (Netzwerk) - AW: Performance-Fragen (Netzwerk)

Nach oben
       Version: Office XP (2002)

Hallo Marcus,
nun, gewiß ist das Netzwerk, das ich zu Hause mit 2 PCs über WLan simuliere, noch langsamer als das meines Kunden. Aber wenn es bei mir 5 Sekunden dauert und die gleiche Operation im Profi-Netzwerk 2 Sekunden, dann habe ich ein ungefähres Maß. 2 Sekunden sind zu lange.
Ich hatte auch schon mal versucht, die 90 Spalten in mehrere Tabellen mit 1:1-Verknüpfungen aufzuteilen, aber das bringt eigentlich nichts (bzw. eher das Gegenteil), da die 90 Felder ja doch alle gleichzeitig angezeigt werden müssen.
Mein Hauptformular ist so aufgebaut, daß im Formularkopf die Detaildaten stehen und der Detailbereich als Endlosformular alle Datensätze anzeigt. Dort finden die Sortierungen und Filterungen statt. In der Praxis passen von den 16.000 Datensätzen gerade mal 10 bis 20 (je nach Bildschirmauflösung) gleichzeitig auf den Monitor. Und i.d.R. wird auch nur mit denen gearbeitet, die oben angezeigt werden. Aber nur die Top 100 zu sortieren bzw. zu filtern und die restlichen 15900 Datensätze zu ignorieren (bzw. erst dann in die Selektion einzubeziehen, wenn tatsächlich gescrollt wird) ... das geht wohl mit Access nicht, oder?

Interessant in Deiner Antwort der Satz:
Zitat:
Da Access aber das RecordLocking in der LDB Datei erledigt, ...
Das ist erst seit 2002 so, stimmts? Früher standen doch in der ldb-Datei nur die angemeldeten Benutzer, während sie heute einen Haufen kryptischer Zeichen enthält. Mir scheint jedenfalls, daß seit meinem kürzlichen Umstieg auf XP die ganze Sache noch langsamer geworden ist und daß eine Tabelle, sobald sie einmal von einem 2. Client bearbeitet wurde, ständig auf Sperrungen überprüft wird, sogar dann noch, wenn der 2. Client das Programm längst wieder geschlossen hat. Ein Zurücksetzen des RecordLockings in den vorherigen Zustand scheint nicht stattzufinden bzw. möglich zu sein ...

Mangels besserer Anregungen helfe ich mir jetzt, indem ich mit einer lokalen Kopie der servergespeicherten Haupttabelle arbeite, die dann vor jedem neuen Sortiervorgang aktualisiert werden muß. 10 von 16000 Datensätzen an Hand eines Zeitstempels aus der servergespeicherten Tabelle herauszufiltern und damit die lokale Kopie zu aktualisieren und diese anschließend noch zu sortieren, das dauert komischerweise nur einen Bruchteil der Zeit, die für das Sortieren der servergespeicherten Tabelle selbst benötigt wird.
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Programmierung / VBA: Zugriff von 2 Rechner im Netzwerk langsam 2 FlatEric 519 27. Sep 2012, 09:40
FlatEric Zugriff von 2 Rechner im Netzwerk langsam
Keine neuen Beiträge Access Programmierung / VBA: Drucken über Netzwerk 4 floo34k 196 03. Aug 2012, 20:46
steffen0815 Drucken über Netzwerk
Keine neuen Beiträge Access Berichte: Berichdruck über Netzwerk geht nicht 0 tieflieger 294 14. Jun 2008, 04:47
tieflieger Berichdruck über Netzwerk geht nicht
Keine neuen Beiträge Access Formulare: Bilder pfad im Netzwerk 1 Julia83 705 30. Mai 2008, 14:00
JörgG Bilder pfad im Netzwerk
Keine neuen Beiträge Access Tabellen & Abfragen: Netzwerk abfrage? 1 thorsten18967 486 16. Okt 2007, 15:05
Nouba Netzwerk abfrage?
Keine neuen Beiträge Access Hilfe: Access per Internet oder Netzwerk ausführen ! 2 wandersmann 999 13. Feb 2007, 06:20
Nouba Access per Internet oder Netzwerk ausführen !
Keine neuen Beiträge Access Programmierung / VBA: Wie kann ich über Netzwerk Software auslesen ??? 4 suadklassen2 5249 23. Jan 2007, 19:53
Inti31 Wie kann ich über Netzwerk Software auslesen ???
Keine neuen Beiträge Access Hilfe: Hilfe - Funktionen lassen sich nicht aufrufen - Netzwerk 2 mikase 701 09. Okt 2006, 22:14
mikase Hilfe - Funktionen lassen sich nicht aufrufen - Netzwerk
Keine neuen Beiträge Access Hilfe: Netzwerk, Frontend, Backend, Autorisierung, Zugriffe??? 3 Grimi 1101 15. Aug 2006, 15:02
viny Netzwerk, Frontend, Backend, Autorisierung, Zugriffe???
Keine neuen Beiträge Access Formulare: angemeldeter Benutzer auf Rechner im Netzwerk anzeigen 1 Mark85 7271 27. Apr 2006, 15:14
lars.mu angemeldeter Benutzer auf Rechner im Netzwerk anzeigen
Keine neuen Beiträge Access Programmierung / VBA: Netzwerk deaktivieren 3 Perter82 891 04. Feb 2006, 18:44
steffen0815 Netzwerk deaktivieren
Keine neuen Beiträge Access Hilfe: BE/FE Tabellenverknüpfung im Netzwerk über Servernamen 2 viper 790 25. Jan 2006, 12:52
viper BE/FE Tabellenverknüpfung im Netzwerk über Servernamen
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: PHP Forum