Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
GO TOP
a=seconds()
seek 20933
b=seconds()
?b-a [COLOR=maroon]&& RESULTS: 1st run - 0.000, 2nd run - 0.000[/color]
GO TOP
a=seconds()
locate for count=20933
b=seconds()
?b-a [COLOR=maroon]&& RESULTS: 1st run - 0.771, 2nd run - 0.544[/color]
a=seconds()
select * from myTable where count=20933 into cursor found_it
b=seconds()
?b-a [COLOR=maroon]&& RESULTS: 1st run - 0.011, 2nd run - 0.001[/color]
LOCAL lcBuffer1, lcBuffer2, lnTicksPerSecond, lnCurrentTickCount
DECLARE INTEGER QueryPerformanceFrequency IN kernel32 STRING @lpFrequency
DECLARE INTEGER QueryPerformanceCounter IN kernel32 STRING @lpPerformanceCount
lcBuffer1 = SPACE(8)
lcBuffer2 = SPACE(8)
=QueryPerformanceFrequency(@lcBuffer1)
lnTicksPerSecond = buf2num(SUBSTR(lcBuffer1, 1,4)) + buf2num(SUBSTR(lcBuffer1, 5,4)) * 2^32
*!* Create the dummy data and Index it
CREATE CURSOR crsTest (Field1 I)
FOR lnCounter = 1 TO 100000
INSERT INTO crsTest (Field1) VALUES (lnCounter)
ENDFOR
INDEX ON Field1 TO FIELD1
SET ORDER TO Field1
CLEAR
GO TOP
=QueryPerformanceCounter(@lcBuffer1) && Click stop watch on
locate for Field1 = 20933
=QueryPerformanceCounter(@lcBuffer2) && Click stop watch off
lnCurrentTickCount = buf2num(SUBSTR(lcBuffer1, 1,4)) + buf2num(SUBSTR(lcBuffer1, 5,4)) * 2^32
lnCurrentTickCount = (buf2num(SUBSTR(lcBuffer2, 1,4)) + buf2num(SUBSTR(lcBuffer2, 5,4)) * 2^32) - lnCurrentTickCount
? "LOCATE:" + CHR(9) + TRANSFORM(lnCurrentTickCount/lnTicksPerSecond) + " secs"
GO TOP
=QueryPerformanceCounter(@lcBuffer1) && Click stop watch on
seek 20933
=QueryPerformanceCounter(@lcBuffer2) && Click stop watch off
lnCurrentTickCount = buf2num(SUBSTR(lcBuffer1, 1,4)) + buf2num(SUBSTR(lcBuffer1, 5,4)) * 2^32
lnCurrentTickCount = (buf2num(SUBSTR(lcBuffer2, 1,4)) + buf2num(SUBSTR(lcBuffer2, 5,4)) * 2^32) - lnCurrentTickCount
? "SEEK:" + CHR(9) + TRANSFORM(lnCurrentTickCount/lnTicksPerSecond) + " secs"
GO TOP
=QueryPerformanceCounter(@lcBuffer1) && Click stop watch on
select * from crsTest where Field1 = 20933 into cursor found_it
=QueryPerformanceCounter(@lcBuffer2) && Click stop watch off
lnCurrentTickCount = buf2num(SUBSTR(lcBuffer1, 1,4)) + buf2num(SUBSTR(lcBuffer1, 5,4)) * 2^32
lnCurrentTickCount = (buf2num(SUBSTR(lcBuffer2, 1,4)) + buf2num(SUBSTR(lcBuffer2, 5,4)) * 2^32) - lnCurrentTickCount
? "SELECT:" + CHR(9) + TRANSFORM(lnCurrentTickCount/lnTicksPerSecond) + " secs"
USE IN SELECT("crsTest")
USE IN SELECT("Found_It")
************************
FUNCTION buf2num(tcBuffer)
************************
RETURN ASC(SUBSTR(tcBuffer, 1,1)) + ;
ASC(SUBSTR(tcBuffer, 2,1)) * 2^8 + ;
ASC(SUBSTR(tcBuffer, 3,1)) * 2^16 + ;
ASC(SUBSTR(tcBuffer, 4,1)) * 2^24