Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Access: Unionquery dauert ewig

Empfohlene Antworten

Veröffentlicht

Hallo!

Seit einiger Zeit bin ich leider wieder gezwungen mit dieser Datenbank zu arbeiten.

Bei einer recht simplen UNION - Query tritt nun folgendes Problem auf: einzeln für sich sind beide beteiligten Abfragen in 2 Sekunden fertig. (Zusammen etwa 240.000 Datensätze).

Als UNION hingegen braucht die ganze Sache fast 50 Sekunden...

Weiß jemand, woran das liegen kann?

Tja,

das liegt wohl rein an Access.

Das Problem habe ich schon seit einigen Jahren, daran sieht man, dass Access eben keine "richtige" Datenbank ist,

sondern nur eine Art Flatfile mit Indexierung und ein paar Erweiterungen.

Liegt die Datei im Netzwerk?

Wird die Abfrage in Access ausgeführt oder durch ein Frontend (z.B. VB o.ä.)?

Eventuell hast Du die Möglichkeit die Abfragen in sich nochmal zu splitten,

um so die steigende DS-Anzahl zu verringern, kann man aber schwer als

Außenstehender beurteilen.

Hi,

das liegt sehr wahrscheinlich an access. vielleicht hast du die möglichkeit, die beiden separaten abfragen als tabellen zu erstellen und über die beiden tabellen die dritte abfrage über die beiden tabellen statt über die beiden abfragen zu erstellen. das könnte die perfomance steigern.

grüße von ipu

Ich bin mir nicht sicher ob es in Access genauso ist.

Bei Oracle kenne wir den Unterschied zwischen "Union" und "UNION ALL".

"UNION ALL" ist das schnellere, da er einfach nur alle Datensätze der beiden Abfragen zusammen schmeißt.

Bei "UNION" führt die Datenbank eine art distinct aus. Das bedeutet, das er prüft, ob es Datensätze gibt die in der ersten und in der zweiten Abfrage identisch sind. Also muss er einen Vergleich über 240.000 Datensätz ausführen. Also prüfe wie dein Union aussieht und versuche es ggf. mit union all.

(ich hoffe das ist fachlich möglich, sonst hilft es manchmal über dieses "union" ergebnis noch eine View zu legen die einfach nur distinct ausführt, da der execution plan dann anders gebildet wird...).

P.S.

Ich bin auch kein Freund von Access (es verdient eigentlich nicht den Begriff Datenbank), aber ich glaube nicht, das Access bei diesen Kleinigkeiten schon aufgibt, da macht es sich der ein oder andere hier zu einfach...

poste mal dein query

UNION ALL... darauf hätte ich selbst kommen müssen. :D

Das löst jedenfalls das Problem, wenn es auch immer noch deutlich langsamer ist, als mit der richtigen Datenbank bzw. mit Einzelqueries.

Noch 4 Monate bis zur Migration. :floet: :)

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.