Frage

Microsoft Access ist eine glatte Art und Weise Daten in einer MS SQL Server-Backend-Datenbank zuzugreifen, aber ich habe immer Probleme habe (sozusagen) große Tabellen, auf Daten zuzugreifen, vor allem, wenn zwischen den Ergebnissen und Design-Modus in Access zu wechseln versuchen, .

Der Zugang gibt mir eine Reihe von netten Dingen, nicht zuletzt von denen ist Crosstabs, aber das hing Verbindung zum Server treibe mir ein wenig verrückt!

Gibt es irgendwelche MS Access-Gurus wissen, wie die ODBC-Verbindung zu optimieren, so dass es nicht zu tun, was Full-Table-Scans zu sein scheint, wenn ich will nur meine Abfragen optimieren und zu bauen?

War es hilfreich?

Lösung

Der ODBC-Treiber wird so viel Arbeit wie möglich zu SQL Server zu übergeben, aber sobald Sie eine VBA-Funktion wie Nz oder Nicht-SQL Server-Syntax wie PIVOT verwenden dann die ODBC-Treiber müssen mehr Daten und Indizes zurück ziehen, die Arbeit zu bekommen erfolgt auf der Client-Seite.

Wie schon aus anderer Antwort entweder bauen Sie Ihre Ansichten in SQL Server und Link zu den Ansichten oder auch ein Access Data Project verwenden.

NB: PIVOT Abfragen mit unbekannten Anzahl von Spalten können nicht in SQL Server auf die gleiche Art und Weise behandelt werden, dass Access dies nativ tun - also, wenn Sie eine Pivot in Access gegen SQL Server-Daten ausgeführt werden Sie wahrscheinlich die gesamte Tabelle zurück ziehen. Pivot Abfragen müssen in SQL Server mit dynamischen SQL-Techniken oder auch vorge gespeicherten Ansichten, die alle Spalten haben hart codiert gebaut werden. Schauen Sie sich diesen Link für einen Weg, dies zu tun:

http://www.sqlservercentral.com/articles/Advanced+ Querying / pivottableformicrosoftsqlserver / 2434 /

Andere Tipps

Wie bereits gesagt wurde, ist die einzige Möglichkeit, die Leistung bei großen Tabellen zu verbessern, ist die SQL Server-Datenbank-Engine die Arbeit für Sie tun zu haben. Ein Verfahren, dies zu tun, das nicht erwähnt ist eine Pass-Through-Abfrage zu verwenden, die Sie Ihren Code ermöglicht es alle in MS Access zu halten, ohne dass Objekte auf dem SQL Server zu erstellen:

http://support.microsoft.com/kb/303968

In Kürze erhalten Sie haben SQL Server T-SQL, anstatt den Zugang Dialekt zu schreiben; jedoch SQL 2005 (im Kompatibilitätsmodus 90 ausgeführt wird) hat einen PIVOT Befehl unterstützen.

Mein ähnliches Problem war, dass die ORACLE ODBC-Verbindung hing nach der Verknüpfungstabelle / ODBC-Verbindung auswählen. Task-Manager sagte, nicht nach 10 Minuten ist der reagiert. Die Verbindung Pings dann ORACLE für alle verfügbaren Tabellen. Ich hatte Anmeldung auf dem ORACLE ODBC Administrator eingeschaltet, so hatte es all diese Dinge in das Protokoll zu schreiben, um vielleicht Stunden keine Ergebnisse zu verlangsamen. Das Protokoll war 60 MB eine Stunde später, als ich drehte es ab, dann war alles in Ordnung!

Um das Gerät gehen auf die Oracle-Installation / Netzwerk-Administration / MS ODBC Adminstrator / Tracing Registerkarte aus und schalten Sie es aus!

Eine gute Quelle für ODBC ist hier: http: //eis.bris. ac.uk/~ccmjs/odbc_section.html

Leider ist Zugang nicht in der Lage eine Menge dieser Arbeit an den Server zu schieben, und ja, es wird große Tabellen-Scans tun, wenn Abfragen für mehrere Tabellen oder Ansichten in SQL Server zu entwerfen.

Sie können Abfragen (Ansichten) in SQL Server erstellen und optimieren mit SSMS und speichern Sie die Ansichten in SQL Server für eine massive Leistungssteigerung und noch Zugang für Ihr Front-End verwenden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top