Hi Forum,
es funktoniert! Nach rund 800 Zeilen Code saugt meine DB nun fehlerfrei Daten von einem Marktdatenanbieter. Und zwar rund 90 Felder je Aktie bei z.Zt 600 Aktien pro Monat.
Mein Problem liegt bei der Verarbeitungsgeschwindigkeit. Am Ende sollen 10 Jahre (sprich 120 Monate) eingeladen werden. Bei einem aktuellen Schnitt von 8sec je Aktie dauert das allerdings 160std oder 6.6 Tage.
Habe den load für zwei Monate protokolliert. Die Verarbeitungszeit je Aktie schwankt beträchtlich zwischen 1sec und 26sec. Ich möchte den Durchschnittswert auf 3-4 sec senken.
Auf die Programmstruktur bin ich einigermaßen stolz. Alle Parameter für den Datendownload (jedes Feld muss einzeln geladen werden) werden in Abh. von Aktie und dem Feldbezeichner während der Laufzeit aus der Datenbank ermittelt. Daraus ergeben sich zahlreiche Datenbankzugriffe. Ihre Anzahl kann von Aktie zu Aktie und von Feld zu Feld schwanken. Ich gehe daher davon aus, dass meine Zugriffsmethode ineffizient ist.
Ich arbeite aktuell mit recordset objects, die mit SQL-Abfrageergebnissen bestückt werden. Hier ein Beispiel:
'==============================================================
Public Function getFormulaType(strFieldname As String) As Integer
'==============================================================
Set rst = CurrentDb.OpenRecordset("SELECT [typeFlag] " & _
"FROM tblJCFFormula " & _
"WHERE [Factor Name] = " & Chr(34) & strFieldname & Chr(34) & „;“)
getFormulaType = rst![typeFlag]
rst.Close
End Function
Kennt Ihr Methoden, die beim DB Zugriff schneller (am schnellsten) arbeiten? Bin für alle Anregungen Dankbar!
schönen Gruß
Dom