Re: Geschwindigkeitsproblem bei Access-Anwendung mit SQL-Server-Backend
- From: "Henry Habermacher [MVP Access]" <DontSpamHenry@xxxxxxxxxxxxxx>
- Date: Wed, 14 Sep 2005 09:16:02 +0700
Hallo David
quoting David Vari:
Wie kann ich es erreichen, dass die Möglichkeit zum Ändern und Durchblättern der gefilterten Datensätze erhalten bleibt und dennoch nicht immer alle Datensätze übertragen werden?
Was vermutlich passiert ist, dass Access aus irgendwelchen Gründen glaubt, dass es schneller zum Ziel kommt, wenn es die vermutlich komplexe Abfrage mit Joins und dergleichen, bei sich lokal auflöst. Damit es das machen kann, muss es alle Datensätze zu sich herholen und diese lokal auswerten und dem Benutzer präsentieren und das immer wieder, damit die Daten auch aktuell bleiben.
Was Access genau macht sollte Dir der Profiler des SQL Servers und JetShopPlan für Jet verraten (zu JetShowPlan schau mal beim www.dbdev.org nach dem entsprechenden Download mit der Beschreibung, wie das geht).
Was jedoch in den meisten Fällen hilft ist folgendes:
Die Abfrage, die hinter dem Hauptformular steckt migrierst Du zum SQL Server als View (Sicht). Du wirst wohl da und dort einige Anpassungen vornehmen müssen, da der SQL Server nicht die gleiche Syntax kennt, wie Jet. Auf VBA Funktionen kannst Du da nicht zurückgreifen, selber gestrickte Funktionen, die in der Abfrage als UDFs verwendet werden, ebenfalls nicht. IIf() musst Du mit CASE WHEN THEN ELSE END, Format mit Convert und Stringverarbeitungsfuntionen ersetzen, Nz mit Coalesce, etc.. Ziel sollte es sein, auf dem SQL Server eine View hinzubekommen, welche alle Datensätze genau so zurückliefert.
Diese View kannst Du nun auf dem SQL Server auf Performance trimmen, was jedoch bei 30'000 Datensätzen kaum nötig sein wird. Wenn diese Fiew im Query Analyzer läuft (Achtung, dieser ist ziemlich langsam, die Performance, die Du da siehst hat wenig mir der Performance der View selber zu tun), dann bindest Du diese wie eine Tabelle bei Dir in die Datenbank ein. Danach bindest Du diese Tabelle als Recordsource hinter das Formular statt der bisherigen Abfrage und kannst Dich in den meisten Fällen einer ungewohnten Geschwindigkeit erfreuen.
Gruss Henry
--
Keine E-Mails auf Postings in NGs senden!
Don't send e-mails to postings in newsgroups!
KB: http://support.microsoft.com/default.aspx
FAQ: http://www.donkarl.com (neu mit Suchfunktion!)
OH: Online Hilfe von Microsoft Access (Taste F1)
Downloads: http://www.dbdev.org
.
- References:
- Geschwindigkeitsproblem bei Access-Anwendung mit SQL-Server-Backend
- From: David Vari
- Geschwindigkeitsproblem bei Access-Anwendung mit SQL-Server-Backend
- Prev by Date: Re: Geschwindigkeitsproblem bei Access-Anwendung mit SQL-Server-Backend
- Next by Date: Re: Geschwindigkeitsproblem bei Access-Anwendung mit SQL-Server-Backend
- Previous by thread: Re: Geschwindigkeitsproblem bei Access-Anwendung mit SQL-Server-Backend
- Next by thread: Re: Geschwindigkeitsproblem bei Access-Anwendung mit SQL-Server-Backend
- Index(es):
Relevant Pages
|
|