Access Frontend und SQL Server Backend

Anonym
2024-01-11T07:33:22+00:00

Ich habe eine View auf einem SQL Server mit der lokalen Access-DB verknüpft und möchte eine einfach SELECT * INNER JOIN ON access.a = SQLServer.b durchführen. DB und SQL Server sind auf dem gleichen Rechner.

Die einfache simple Abfrage benötigt auf dem Rechner ca. 3 Sekunden und ich vermute es liegt an den unterschiedlichen COLLATEs. Auf dem SQL Server ist für das b-Feld [NCHAR 22] COLLATE latin1_Gerneral_100_BIN eingestellt. Access selbst und damit das Feld a [kurzer Text] vermutet ich ist auf COLLATE latin1_general_ci_as eingestellt.

Kommt das Problem möglicherweise daher? Benötigt der ON Vergleich mit den unterschiedlichen COLLATEs diese außergewöhnliche Abfragezeit?

Hat jemand ähnliches Problem bereits gelöst?

Microsoft 365 und Office | Access | Für das Bildungswesen | Andere

Gesperrte Frage. Diese Frage wurde aus der Microsoft-Support-Community migriert. Sie können darüber abstimmen, ob sie hilfreich ist, aber Sie können keine Kommentare oder Antworten hinzufügen oder der Frage folgen.

0 Kommentare Keine Kommentare

1 Antwort

Sortieren nach: Älteste
  1. Anonym
    2024-02-03T01:45:57+00:00

    Hallo,

    Um klarzustellen, die View liegt als verknüpfte Tabelle in Access vor, richtig?

    Kannst du das echte SQL-Statement posten, sowohl das der View als auch das in Access?

    Was im SQL Server die Collation ist, heißt in Access "Sortierreihenfolge bei neuer Datenbank" und wird in den Optionen unter Allgemein eingestellt. Änderungen daran werden erst nach dem nächsten Komprimieren/Reparieren aktiv.

    Wenn in Access als Reihenfolge "Allgemein" oder "Allgemein Vorversion" eingestellt ist, entspricht das am ehesten Latin1_General_CI_AS. Ein JOIN innerhalb Access kommt ohne COLLATE aus, die Engine versucht, evtl. unterschiedliche Code-Tabellen implizit zu verknüpfen, ohne dass der User etwas davon mitbekommt, es sei denn durch nachlassende Performance.

    Wenn die View am Server noch schnell ist, wäre sie das als verknüpfte Tabelle in Access ebenfalls. Abfragen, in denen verknüpfte mit lokalen Tabellen per JOIN zusammengeführt werden, sind normalerweise langsamer als nur lokale oder nur verknüpfte. Evtl. hilft die Anlage eines Index auf die Felder der verknüpfte View, die im JOIN oder WHERE angesprochen werden.

    Gruss - Peter

    War diese Antwort hilfreich?

    0 Kommentare Keine Kommentare