Wiki Home

sys 3050 largedbf


Namespace: WIN_COM_API

I have worked with some large tables in the past with a Utility Billing application at Black Mountain Software, Inc.
Last fall, while at southwestfox, my boss Jack Liebshutz and I were listening to Christf Wallenhaupt on the Dark Side of Foxpro.
Jack leaned over and said, " maybe you should look at removing some of your indexes in UB"

While working on this project, I began to play with SYS(3050) as I have tweaked it in the past. It struck me that the file size could be used to determine the best case scenario of each client using our system.

Basically, I look at the largest .DBF in the folder and then set the memory based on that file size.

I saw some very large reductions in time required for many operations in the software while using this method.
A good test is to run a REINDEX on a large table with multiple indexes. Run with and without the setting applied.
Remember to re-boot in between runs as Mac Rubel always suggested while working with large tables and speed testing.

*-- how to call:
Assumes that Fox has loaded foreground and background memory
Assumes that you run this only one time per application use

*-- run one time when you start your app
jdata_memory = data_memory()

The code:

*-- set sys 3050 based on the largest .DBF in your app folder
datamemory

*-- find the largest table in a folder
largestdbf




Contributor(s): Stacy Violett
( Topic last updated: 2008.02.07 09:33:37 PM )