I'm trying to avoid the necessity of reading extra books and fishing in the dark doing experiments. Maybe that is not possible, and I will have to do it myself. Tanstaafl!
Maybe I can restate my question more simply.
My data consists simply of a large number of *unrelated* flat files, simple, fixed record structures and approx 9,000 records in each (30 years of price/volume data).
My processing involves working forward historically through the records in each file, by itself (sometimes starting in the middle), calculating moving averages and other indicators, and using those plus additional complex logic to determine entry and exit points for trading simulation, and/or plotting the info on a chart.
The calculations are 99+% of the code - accessing my data is pretty simple. If I were doing this in Fortran, which is what I cut my teeth on in the late 1960's and used extensively for a couple of decades after that, then I would set all this up as a bunch of direct-access files. The only "complexity" is if I want to start at a particular date within the file and move forward ... either a simple key file with a pointer array, or a quick binary search, would find me the starting point.
OK ... that's the kind of thing that I already know how to do ... can be done in
VB in a variety of ways.
My question is ... if I port this limited data I/O scheme over to an Access or SQL engine and just do the same things with it (no ad hoc stuff required), will the Access or SQL interface to the simple tables operate FASTER or SLOWER than my "old fashioned" method? And, will the overhead in RAM be a lot greater?
I would be interested in the answer to those questions, separately for two different scenarios:
a) In the event that the processing of the data is very extensive, possibly I would read in just one record at a time from the file, work on it, and then proceed to the next record. This is the kind of thing you had to do in the "old days", when big mainframes had only 64k of RAM to work within.
b) Alternatively (more likely), I would be loading the full set of historical data for a given symbol into a working array before looping through it and doing the calc's.
I realize this question may be somewhat out of scope for this book ... but it does sort of fit into a chapter one-ish area that could be entitled: "Wnen and Why Do I Need to Use a Database Engine?"
If anyone has actually done comparisons like this before, with simple I/O and simplistic DB architectures such as my own ... could you please let me know which tree I should be barking up, so to speak :~)
Thanks!