Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Select slow
Message
From
07/09/2006 11:20:11
 
 
To
07/09/2006 09:50:56
Suhas Hegde
Dental Surgeon
Sirsi, India
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Title:
Environment versions
Visual FoxPro:
VFP 6 SP5
Miscellaneous
Thread ID:
01149759
Message ID:
01151866
Views:
35
>>>>>>>>
>>>>>>>>An Index caching overload effect ?
>>>>>>>>
>>>>>>>>try, and post this time:
>>>>>>>>
>>>>>>>>use bhav_data
>>>>>>>>SET EXACT ON
>>>>>>>>=lOOKUP(symbol, m.THISVALUE,symbol)
>>>>>>>>SELECT date,open,high,low,close,tottrdqty,sma9,sma12,sma26 FROM bhav_data;
>>>>>>>>where symbol = m.THISVALUE  INTO CURSOR tempDETAIL nofilter
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>Minimum time taken is 9 secs
>>>>>>>
>>>>>>>but if i run the second time with the same value in thisvalue it runs under .5 secs
>>>>>>>
>>>>>>>like
>>>>>>>
>>>>>>>First run with thisvalue = 'ABCD' -- 10 secs
>>>>>>>second run with thisvalue = 'dfsd' -- 10 secs
>>>>>>>third run with thisvalue = 'ABCD' -- .5 secs
>>>>>>>
>>>>>>>that is wilhout cloing the table
>>>>>>
>>>>>>this confirm the caching effect.
>>>>>>
>>>>>>try
>>>>>>
>>>>>>SELECT date,open,high,low,close,tottrdqty,sma9,sma12,sma26 FROM bhav_data;
>>>>>>where symbol = m.THISVALUE AND symbol = symbol INTO CURSOR tempDETAIL nofilter
>>>>>>
>>>>>
>>>>>No the result is the same. the above doesnt make any difference.
>>>>>Can u hilight what u mean by cashing effect ? what is going on ?
>>>>
>>>>VFP load data into an internal cache ( a buffer memory).
>>>>
>>>>try this ( it minimize and clear the buffer, then the execution time is more stable ?):
>>>>
>>>>
>>>>SYS(3050, 1, 1) minimize the buffer size
>>>>
>>>>sys(1104) && unload the buffer
>>>>SELECT .... WHERE .. = m.thisvalue INTO ...
>>>>
>>>
>>>
>>>No help
>>>same effect
>>
>>
>>>I put the SYS(3050, 1, 1) in init of the form or should i put it before the query ?
>>
>>One time is sufficient
>>>sys(1104)
>>>SELECT .... WHERE .. = m.thisvalue INTO
>>
>>Rerun VFP, and post the output of this:
>>
>>for k=1 to 5
>>  sys(1104)
>>  t1=seconds()
>>  SELECT .... WHERE .. = m.thisvalue INTO
>>  ? seconds()-m.t1
>>next
>>
>
>
>returned
>
>9.838
>0.0339
>0.0149
>0.0149
>0.017

This is what I said to you on the first message.

You want speed up the first query ?
Hw choice :
- Upgrade the HW to a SCSI multichannel RAID 0 15000 rpm storage

Sw choice :
write a background process that load the table when the CPU is idle.
Of course, you have to upgrade the RAM to 2 or more GB.
Previous
Reply
Map
View

Click here to load this message in the networking platform