Hi Joel,
>My question is this: isn't 100MB incredibly low?
No way! Absolutely! Yes! No! Maybe! ;-)
SYS(3050) is used for caching queries. VFP will never allocate more memory than SYS(3050) for queries, but it might allocate significantly less. Therefore it make sense to use a higher value that fits to memory availability. The turning point here is when Windows needs to start swapping to accommodate VFP's request.
The actual usage, however, depends on three other factors: Database size, queries, and update frequency. Larger tables obviously need more memory as bitmaps have one bit for every physical record, no matter what the size of the result set is. Larger tables also have more index nodes and need more storage for every record in an index node.
If you execute more different queries, VFP will store more bitmaps in the cache than when you use few queries or repeat the same query over and over.
Update frequency is an issue because every update to a table invalidates the cache. VFP will remove all cache entries for that table and start over again. If you merely query existing data, the cache is more beneficial as it can be more often reused. If you permanently update data, you won't need more memory than for a single query.
--
Christof