CREATE CURSOR test (test I) >APPEND BLANK >INDEX ON Test TAG TEST >SET DELETED ON > >SYS(3054,2) > >SELECT * FROM Test WHERE Test = 1 NOFILTER > >SELECT Test >DELETE TAG ALL > >INDEX ON Test TAG TEST FOR NOT DELETED() >SELECT * FROM Test WHERE Test = 1 NOFILTER>
SET DELETED ON SET TALK OFF CLEAR CREATE CURSOR TESTDELETED (AA I DEFAULT RAND()*1000) FOR k=1 TO 1000000 APPEND BLANK IF RAND()<0.5 DELETE ENDIF NEXT ? 'no index' TRYTEST() INDEX ON aa TAG taa ? 'full index' TRYTEST() DELETE TAG ALL INDEX ON aa TAG taa FOR NOT DELETED() ? 'filtered index' TRYTEST() PROCEDURE TRYTEST SET ORDER TO t1=SECONDS() COUNT FOR aa<1 ? _tally,SECONDS()-t1 t1=SECONDS() ? LOOKUP(AA,1,AA), SECONDS()-t1 T1=SECONDS() SELECT COUNT(*) FROM TESTDELETED WHERE AA<1 INTO ARRAY DUMMY ? _tally,SECONDS()-t1You can try this into VFP8,