>CLEAR ALL >CLEAR >SET TALK OFF >SET NULL ON >? "2 tables" >? "---------" >FOR nT = 51 TO 52 > SELECT 0 > CREATE CURSOR ("Res"+ALLTRIM(STR(nT))) (C C(1)) > APPEND BLANK >ENDFOR >? "with alias" >TestPerf('Res51','Res52') >? "with id" >TestPerf(SELECT('Res51'),SELECT('Res52')) >? >? "100 tables" >? "---------" > >CLEAR ALL >FOR nT = 1 TO 100 > SELECT 0 > CREATE CURSOR ("Res"+ALLTRIM(STR(nT))) (C C(1)) > APPEND BLANK >ENDFOR >? "with first to next alias" >TestPerf('Res1','Res2') >? "with first to next id" >TestPerf(SELECT('Res1'),SELECT('Res2')) >? "with first to last id" >TestPerf(SELECT('Res1'),SELECT('Res100')) >? "with last to first id" >TestPerf(SELECT('Res100'),SELECT('Res1')) > >FUNCTION TestPerf(w1,w2) > >nSec= SECONDS() > >FOR nT = 1 TO 100000 > SELECT (m.w1) > SELECT (m.w1) >ENDFOR > >? "200.000 workarea changes on the active", SECONDS() - nSec at 40 > >nSec= SECONDS() > >FOR nT = 1 TO 100000 > SELECT (m.w2) > SELECT (m.w1) >ENDFOR > >?? "on another" at 60, SECONDS() - nSec at 80 > >nSec= SECONDS() > >SELECT (m.w1) >FOR nT = 1 TO 100000 > REPLACE C WITH "X" IN (m.w1) >ENDFOR > >? "100.000 replacements in current workarea", SECONDS() - nSec at 40 > >nSec= SECONDS() > >SELECT (m.w1) >FOR nT = 1 TO 100000 > REPLACE C WITH "X" IN (m.w2) >ENDFOR > >?? "on another" at 60, SECONDS() - nSec at 80 > >SELECT (m.w1) >INDEX ON C TAG C >SELECT (m.w2) >INDEX ON C TAG C > >nSec= SECONDS() > >SELECT (m.w1) >FOR nT = 1 TO 100000 > SEEK "X" IN (m.w1) >ENDFOR > >? "100.000 seeks in current workarea", SECONDS() - nSec at 40 > >nSec= SECONDS() > >SELECT (m.w1) >FOR nT = 1 TO 100000 > SEEK "X" IN (m.w2) >ENDFOR > >?? "on another" at 60, SECONDS() - nSec at 80 > >nSec= SECONDS() > >SELECT (m.w1) >FOR nT = 1 TO 100000 > GO 1 IN (m.w1) >ENDFOR > >? "100.000 Go's in current workarea", SECONDS() - nSec at 40 > >nSec= SECONDS() > >SELECT (m.w1) >FOR nT = 1 TO 100000 > GO 1 IN (m.w2) >ENDFOR > >?? "on another" at 60, SECONDS() - nSec at 80 >>