Performance bei Recordseterstellung

27/11/2009 - 09:12 von Maik Hahmann | Report spam
Ich stelle ein kelineres ADP-Projekt auf MDB + DAO um (A03 + SQL2008).
Die Formulare sind alle ungebunden und werden mit Daten aus einem Recordset
gefüllt. Vorher werden noch ein paar Berechnungen mit den Daten angestellt.
Aus einer Tabelle mit 10 Feldern (nur Zahlen und Datumsangaben) brauche ich
für die Berechnung 4 Felder (Zeit, Art, UserID, DatumGearbeitet), wobei
UserID und DatumGearbeitet nur als Filter dienen.
Das Recordset wurde früher über eine Stored Procedure geliefert, mit UserID
und DatumGearbeitet als Parameter.
Momentan habe ich eine View, die nur die 4 Felder enthàlt. Aus dieser lese
ich die erforderlichen Daten aus.

SELECT Zeit, Art FROM vwArbeit WHERE UserID ='& lngUserID &' AND
DatumGearbeitet < '& dtmSearch

Das funktioniert auch ganz gut. Es werden dabei aus ca 30.000 Datensàtzen
etwa 1.500 gefiltert und mit diesen dann gerechnet.

Meine Frage ist nun, ob dies von der Performance so auch für die Zukunft
(wenn mehr DS vorhanden) in Ordnung ist, oder ob es einen anderen Ansatz
gibt. Mit den SP habe ich so mein Problem diese aus meiner MDB anzusprechen,
vor allem wegen der Parameterübergabe.

Hat jemand dazu Tips?

Vielen Dank
Maik
 

Lesen sie die antworten

#1 Josef Poetzl
27/11/2009 - 09:30 | Warnen spam
Hallo!

Maik Hahmann schrieb:
Das Recordset wurde früher über eine Stored Procedure geliefert, mit UserID
und DatumGearbeitet als Parameter.
Momentan habe ich eine View, die nur die 4 Felder enthàlt. Aus dieser lese
ich die erforderlichen Daten aus.


[...]
Meine Frage ist nun, ob dies von der Performance so auch für die Zukunft
(wenn mehr DS vorhanden) in Ordnung ist, oder ob es einen anderen Ansatz
gibt.



Wenn du die Filterwerte über eine Jet-Abfrage so gestaltest, dass sie
über ODBC weitergegeben werden können, wirst du kaum einen Unterschied
bemerken.
So etwas wie
| where VBAFunktion([Datenfeld]) = True
kann natürlich nur mehr von Access/Jet ausgewertet werden, was bei
etwas mehr DS zum erhöhten Kaffeekonsum führen kann.

Mit den SP habe ich so mein Problem diese aus meiner MDB anzusprechen,
vor allem wegen der Parameterübergabe.



Warum verwendest du kein ADODB-Command zum Ansprechen der SP?
Auch wenn Microsoft mittlerweile wieder DAO für Access bewirbt, finde
ich ADODB/OLEDB für den MSSQL-Server-Zugriff immer noch besser
geeignet.
Genauso wie ich für den Jet-zugriff DAO besser gefunden habe, als MS
vor ein paar Jahren der Meinung war, dass DAO out und ADODB in ist.
;-)


BTW: Du kannst auch ein (ungebundenes) ADODB-Recordset an ein Formular
binden, dann muss du nicht auf die besondere Fàhigkeit von Access -
die gebundenen Formulare - verzichten.

mfg
Josef

EPT: (Access Error Prevention Table) http://access.joposol.com/
FAQ: (Access-FAQ von Karl Donaubauer) http://www.donkarl.com/

Ähnliche fragen