Rätselhafte Probleme mit Update-Abfragen

Hallo zusammen,

habt Ihr in Access schonmal erlebt, dass Update-Abfragen „kaputtgehen“?

Der Hintergrund:
Ich benutze Access XP (2002) auf einem Analyse-Rechner um täglich mehre Datenbankauswertungen darauf zu machen. Diesen Rechner steuere ich per Remote-Desktop, die Datenbank liegt auf einem weiteren Server bzw. Netzlaufwerk. Während ich meine Analysen durchführe greift niemand sonst auf die Datenbank zu. Die zur Analyse benutzten Daten werden zum Teil importiert bzw. die Datenbank hat noch einige ODBC-Verknüpfungen zu Tabellen eines SQL-Servers. Da alle Prozesse durch Makros und VBA-Skripte automatisiert sind, läuft die Datenbank eigentlich sehr zuverlässig. Eine große Tabelle mit ca. 450.000 Datensätzen steht dabei im Mittelpunkt. Erst werden die Daten des aktuellen Monats gelöscht, dann die neuesten Daten des aktuellen Monats angefügt. Anschließend werden noch zig Update-Abfragen über alle Datensätze der Tabelle „gebügelt“.

Das Problem:
Einige Update-Abfragen funktionieren nicht immer bzw. sind manchmal extrem langsam. Aus diesem Grund haben wir noch ein Tabelle eingebaut, welche die Laufzeiten der einzelnen Abfragen mitloggt. Außerdem wurden die Update-Abfragen so umgebaut, dass nicht mehrere Felder gleichzeitig, sondern nur noch einzelne Felder ge-updated werden. Das hat bisher auch ganz gut funktioniert, aber seit kurzem ist die Performance so schlecht, dass einige Abfragen die vor kurzem noch in 5 Sekunden durch waren, nach 20 Minuten immer noch nicht fertig sind. Die Fortschritts-Anzeige der Abfrage kommt dabei über den ersten Balken nicht hinaus. Manchmal verharrt dabei die Netzwerkauslastung bei 12,5% während sich der Prozessor einfach nur langweilt. Dann hilft nur noch die Datenbank abzuschießen, alles neu zu starten und nochmal von vorne zu beginnen. Nach dem xten Versuch klappt es dann aber doch. Teilweise sogar mit hoher Geschwindigkeit.

Meine Frage:
Kennt jemand dieses Problem bzw. deren Ursache? Meine Kollegen und ich sind einfach nur ratlos. Wir haben schon alles mögliche getestet, ausprobiert und geändert. Die Datenbank macht aber immer noch was sie will. (Mal schnell, mal langsam und manchmal läuft es überhaupt nicht mehr.) Selbst mit BackUps, die Gestern, letzte Woche oder im letzen Monat noch tadellos liefen, entsteht das Problem. Im Internet haben wir bisher auch noch nichts gefunden, was uns wirklich weitergeholfen hat. Hat jemand von euch vielleicht Lösungsansätze?

Vielen Dank für interessante und vielleicht hilfreiche Antworten.

MfG
Stephan

PS: Ja, ich weiss, dass das Jet-Modul scheiße, und der SQL-Server schneller und zuverlässiger ist. Da wir aber schon dabei sind ein anderes Warenwirtschaftssystem einzuführen, wollen wir nichts mehr neu programmieren, was wir bald nicht mehr brauchen.

Hallo,

das tönt ja sehr komplex und ich befürchte, sowas ist aus der Ferne äußerst schlecht zu diagnostizieren, wenn überhaupt.

Als erstes würde ich die Netzwerkverbindungen aller beteiligter Rechner genauestens unter die Lupe nehmen… Machnmal liegt sowas nur an einer wackeligen Steckverbindung…

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Hallo Stephan,

habt Ihr in Access schonmal erlebt, dass Update-Abfragen
„kaputtgehen“?

klar

Meine Frage:
Kennt jemand dieses Problem bzw. deren Ursache?

da du die näheren Umstände nicht genauer beschreibst, rate ich mal:

  • Antivirusprogramm neu
  • Festplattenplatz zu gering
  • das letzte Scandisk liegt Monate zurück
  • das letzte Defrag liegt Monate zurück
  • die Datenbank wurde vor Monaten das letze mal komprimiert
  • Temp-Ordner sind voll
  • die Datensicherung läuft gleichzeitig
  • usw.

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)

Hallo Franz,

sowas ist aus der Ferne äußerst schlecht zu diagnostizieren, wenn :überhaupt.

Das hatte ich schon befürchtet. Wir haben schon alles Mögliche ausprobiert, getestet …

Als erstes würde ich die Netzwerkverbindungen aller
beteiligter Rechner genauestens unter die Lupe nehmen…
Machnmal liegt sowas nur an einer wackeligen
Steckverbindung…

Daran liegt es bestimmt nicht. Wenn das Problem auftritt, funktioniert die Datenbank nicht mal mehr lokal. Darüber hinaus wurde der Dateiserver vor kurzem gegen einen neuen getauscht und die Auswertung auch schon auf einem anderen Analyserechner gemacht. Das Problem trat jedoch weiterhin auf.

Ich habe einfach nur den Eindruck, dass es Konstellationen geben muss, bei denen Update-Abfragen scheinbar nicht mehr laufen. Keine Ahnung, ob irgendwo ein Limit erreicht wird.

Jedenfalls hatte ich heute die Schnauze voll und habe einfach mal umprogrammiert. Nun werden erst die Datensätze, die geändert werden sollen, ermittelt und in eine neue Tabelle geschrieben. Anschließend wird beim darauf folgenden Update nur noch auf diese etwas kleinere Tabelle gelinkt. Das Ergebnis ist kaum zu glauben. Obwohl die Programmierung nun nicht mehr geradlinig ist, „flutschen“ die Abfragen einfach nur so durch. Anscheinend mag es Access nicht, wenn man zu „intelligent“ programmiert. Es ist wohl besser ab einer bestimmten (mir unbekannten) Menge von Daten, mehre Abfragen zu erstellen, anstatt alles in eine einzige „reinzuquetschen“. Auch wenn das zu Anfangs gut und schnell ist, entstehen irgendwann Probleme. Die Erstellung von „Zwischentabellen“ sah ich bisher als überflüssig an und wollte jegliche Redundanz vermeiden. Offensichtlich habe ich mich geirrt bzw. die Fähigkeiten von Access überschätzt.

Mal sehen wie lange diese Lösung hält.

MfG
Stephan

Hallo Wolfgang,

als Controller habe ich von unserer Infrastruktur so gut wie keine Ahnung und auch keine Berechtigungen. Das machen dann meine Kollegen. Leider sind die mit ihrem Latein auch schon am Ende.

Die von Dir angeführten möglichen Problemquellen wurden bereits mehrfach geprüft. Komisch ist halt, dass die Datenbank, wenn sie nicht will, auch lokal nicht mehr läuft.

Ich habe heute kurzerhand mal die Programmierung geändert. Ich glaube so schnell wie heute war die Datenbank noch nie. Hoffentlich bleibt diese Performance erstmal einige Zeit erhalten.

MfG
Stephan

Hallo,

arbeite auch Access+SQl-Server.

Änderungsabfragen oder auch Löschabfragen betreffen bei mir immer max. 10.000 DS. Lasse meine Abfragen in einer Schleife durchlaufen.

EPa