Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Append or not to append, that is the Q!
Message
General information
Forum:
Visual FoxPro
Category:
Databases,Tables, Views, Indexing and SQL syntax
Miscellaneous
Thread ID:
01313927
Message ID:
01313971
Views:
14
>>>>>>>One of our customers is having some time problems with a procedure of closing the period of a particular module. We just identified the step where the function takes the longest which i am posting here
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>*:This is a temp cursor with xx,xxx amount of records, since I do not have access to the real data
>>>>>>>*:I just can't really now how many records there are, but most likely there are thousands
>>>>>>>select CurIctfer
>>>>>>>go top in CurIctfer
>>>>>>>
>>>>>>>*:This is basically a wrapper routine for the SQLPrepare() VFP function
>>>>>>>if !PrepareSql(pnHandle, "insert into mySQlTable (cuid,cbatcno,cjeid, cacctid,cdescript,creference," +;
>>>>>>>   "cyear, cpdno, cstatus, csource, dtrs, ntrsamt, ctrstype, ctrsno, cobjno) values (?CurIctfer.cuid, " +;
>>>>>>>   "?CurIctfer.cbatcno, " +;
>>>>>>>   "?CurIctfer.cjeid, ?CurIctfer.cacctid, ?CurIctfer.cdescript, ?CurIctfer.creference," + ;
>>>>>>>   "?CurIctfer.cyear, ?CurIctfer.cpdno, ?CurIctfer.cstatus, ?CurIctfer.csource," +;
>>>>>>>   " ?CurIctfer.cTrs, ?CurIctfer.ntrsamt, ?CurIctfer.cTrsType, ?CurIctfer.cTrsNo, ?CurIctfer.cObjNo)")
>>>>>>>    return .f.
>>>>>>>endif
>>>>>>>
>>>>>>>*:and here is where the inserts are made, goes record by record and inserts each one to the back end
>>>>>>>*:database
>>>>>>>scan
>>>>>>>    if !SetSqlData(, pnHandle)
>>>>>>>        return .f.
>>>>>>>    endif
>>>>>>>ENDSCAN
>>>>>>>
>>>>>>>=UnprepareSql(pnHandle)
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>The customer claims this piece of code takes over 2 hours. so I was wondering if We change the Scan..Insert..Endscan and replace it with a append from kinda like this
>>>>>>>
>>>>>>>
>>>>>>>*:I would create a Remote view, NoDataOnLoad, base on the mySQlTable, Table Buffering
>>>>>>>Select mySQlTable
>>>>>>>APPEND FROM CurIctfer
>>>>>>>TABLEUPDATE()
>>>>>>>
>>>>>>>
>>>>>>>do you guys think this would be faster, or slower?
>>>>>>>
>>>>>>>maybe not with a append from, maybe the "CurIctfer" could be a remote view, and then just perfom the Tableupdate(). would this be helpfull?
>>>>>>>
>>>>>>>Once again, i do not have the actual data to do the testing so this is basically Hypothetical
>>>>>>>
>>>>>>>regards
>>>>>>
>>>>>>Why not make this cursor updatable and send all updates directly?
>>>>>
>>>>>acctually that is what I implied on the note above
>>>>>
>>>>>>>maybe not with a append from, maybe the "CurIctfer" could be a remote view, and then just perfom the Tableupdate()
>>>>>
>>>>>would it be faster?
>>>>
>>>>How many records?
>>>>BTW, From where your CurIctfer cursor comes from?, Can't you do its creation directly on your BackEnd?
>>>
>>>From where your CurIctfer cursor comes from?,
>>>
>>>>>>>*:This is a temp cursor with xx,xxx amount of records, since I do not have access to the real data
>>>>>>>*:I just can't really now how many records there are, but most likely there are thousands
>>>>>>>select CurIctfer
>>>>>>>go top in CurIctfer
>>>
>>>
>>>Can't you do its creation directly on your BackEnd?
>>>
>>>not really, I mean , I migth, but this represents a huge change on coding, i am just trying to figure out how to do it a bit faster with out changing a lot of code.
>>
>>
>>What I meant was how CurIctfer is created?
>>Some SPT command?
>>Import from some external file?
>
>acctually this cursor is created using a select statement to bring some data. then stays
>
>select .... from.... into cursor curictfer



And I hope that SELECT is from your backEnd database, Isn't it?
Against Stupidity the Gods themselves Contend in Vain - Johann Christoph Friedrich von Schiller
The only thing normal about database guys is their tables.
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform