Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Optimizing replace
Message
From
02/12/2000 03:14:29
Walter Meester
HoogkarspelNetherlands
 
 
To
01/12/2000 14:14:06
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Miscellaneous
Thread ID:
00448237
Message ID:
00448464
Views:
6
Hi charlie,

>I am importing the results of a regression run to an existing fox table, using odbc. After I get an import cursor for use in VFP, I scan it and replace each field in the target table as I find the record, like so:
>
>SCAN
> IF INDEXSEEK(EVAL(lcSeekExpr),.T.,lcTargetTable,.cPKIndex)
> REPLACE (lcTargetField) WITH EVAL(.cSourceField)
> ENDIF
>ENDSCAN
>(the import cursor always includes the fields for the pk of the target table.)
>
>This takes about 13 minutes for 18,000 records on my local machine. I'm wondering if I should do an SQL select and join the two tables, and then overwrite the target table with the output cursor. This might speed it up, but I'm not sure of the other implications for the data - for instance the target table could be involved in several relations. Any ideas for optimizing this would be much appreciated-


One thing that is certainly slowing things down, is the recordlocking mechansim you might want to apply filelocking instead. However this might cause replacements elsewhere on the network (from other users) to fail during the replace:
REPLACE (lcTargetField) WITH EVAL(.cSourceField) ;
        FOR INDEXSEEK(EVAL(lcSeekExpr),.T.,lcTargetTable,.cPKIndex)
Another thing that might be slowing things down is the RI mechanism, especially when replacing PK or FK's. When this is happening you can speed up RI a bit by opening the tables involed in RI at forehand and close them when done.

Walter,
Previous
Reply
Map
View

Click here to load this message in the networking platform