RE: FoxPro DOS v. Visual Foxpro : Speed of data conversion / processing

Author: Bill Arnold, bill@wjarnold.com

Posted: 1999-08-29 at 19:17:07

Russ,

This is a matter of great concern to me too, and I posted a question and got

some interesting responses not too long ago on the subject. I have a monthly

job that imports a few million records spread across almost a thousand

tables (ZIP4 tables for the entire US). Because the data has to be massaged

on the way into tables, I originally setup the import process to (low level

I/O) read the ASCII fixed fields table, do the work and then APPEND BLANK to

add a record to the database.

I sped up the process a little by APPENDing blank records in 1,000 record

"blocks" and then replacing the blank fields of each until the 1,000 empty

records was filled and repeated the process again.

Working this way, the import takes something like 2 days on a P133 machine.

A faster machine probably would help, but relegating the job to a 'spare'

machine that just chugs away seems to be the least bothersome. One thing I

did do is design the process so multiple machines could participate in a

time crunch, and that does work very well when needed.

Suggestions I received for speeding up the process included using APPEND

TYPE SDF, which would bring in each table en masse, but that would have to

be followed with another step to do the massaging needed to prepare the

tables for use, since UDFs can't be used on individual fields with APPEND

TYPE SDF (but that would only partially address the data massaging

requirements anyway). Another suggestion, by Anders, that seems to have a

lot of merit, but I didn't try it yet, is to use APPEND TYPE SDF but with

rules in the target DBC (has to be VFP and target has to be DBC, tho) ...

I'm anxious to try this, but can't get to it yet.

In general, processing each input record and then adding it to a table using

APPEND BLANK is very slow compared to a bulk-add using APPEND TYPE SDF.

As for FPD versus VFP in terms of speed, I know some people think that FPD

if faster, but my experience so far with VFP shows that VFP (6, anyway, with

SP3 if that means anything) it's actually faster than equivalent FPD apps. I

attribute the difference to better memory management in VFP, but that's only

my gut feeling (wish I had better measurement tools; I like the Profiler,

but can't find a way to track I/O utilization). I have not yet tested the

bulk-import under VFP, the tests I'm referring to are different, but they

are long running processor and I/O intensive jobs.

Bill

-----Original Message-----

From: profox@leafe.com [mailto:profox@leafe.com]On Behalf Of Russ Scott

Sent: Sunday, August 29, 1999 9:57 PM

To: Multiple recipients of ProFox

Subject: FoxPro DOS v. Visual Foxpro : Speed of data conversion /

processing

Hey, all:

I have a chance to investigate a data conversion job. This would involve

importing from a flat file into FP tables, formatting/ massaging it, then

outputting it to another set of flat files. The company uses FPD (not sure

which version) instead of VFP because "FPD is faster". To give you an idea

of the size of the jobs involved, they take from ~1 hour to multiple days.

This causes me to ask some questions:

Would FPD really be faster for data conversion if you compared VFP under

Win9x/NT to FPD running on the same machine booted to DOS only? Does the

version of DOS make a significant difference? Does anyone have any hard

data, educated guesses or gut feelings about this?

Are there considerations besides speed (reliablility for example) to take

into consideration?

On a related note, has anyone clocked APPEND FROM... and COPY TO... against

low-level file commands?

I don't have to talk to these people for a couple of days and was curious

if anyone else had looked into these issues.

Any ideas?

Thanks:

Russ Scott

russsct@ix.netcom.com

©1999 Bill Arnold, bill@wjarnold.com