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 DO TestPerf ? ? "10 tables" ? "---------" CLEAR ALL FOR nT = 50 TO 60 SELECT 0 CREATE CURSOR ("Res"+ALLTRIM(STR(nT))) (C C(1)) APPEND BLANK ENDFOR DO TestPerf ? ? "60 tables" ? "---------" CLEAR ALL FOR nT = 1 TO 60 SELECT 0 CREATE CURSOR ("Res"+ALLTRIM(STR(nT))) (C C(1)) APPEND BLANK ENDFOR DO TestPerf ? ? "100 tables" ? "---------" CLEAR ALL FOR nT = 1 TO 100 SELECT 0 CREATE CURSOR ("Res"+ALLTRIM(STR(nT))) (C C(1)) APPEND BLANK ENDFOR DO TestPerf FUNCTION TestPerf nSec= SECONDS() FOR nT = 1 TO 100000 SELECT Res51 SELECT Res51 ENDFOR ? "No workarea change", SECONDS() - nSec nSec= SECONDS() FOR nT = 1 TO 100000 SELECT Res51 SELECT Res52 ENDFOR ? "200.000 workarea changes", SECONDS() - nSec nSec= SECONDS() SELECT Res51 FOR nT = 1 TO 100000 REPLACE C WITH "X" IN res51 ENDFOR ? "100.000 replacements in current workarea", SECONDS() - nSec nSec= SECONDS() SELECT Res51 FOR nT = 1 TO 100000 REPLACE C WITH "X" IN res52 ENDFOR ? "100.000 replacements in other workarea", SECONDS() - nSec SELECT Res51 INDEX ON C TAG C SELECT Res52 INDEX ON C TAG C nSec= SECONDS() SELECT Res51 FOR nT = 1 TO 100000 SEEK "X" IN res51 ENDFOR ? "100.000 seeks in current workarea", SECONDS() - nSec nSec= SECONDS() SELECT Res51 FOR nT = 1 TO 100000 SEEK "X" IN res52 ENDFOR ? "100.000 seeks in other workarea", SECONDS() - nSec nSec= SECONDS() SELECT Res51 FOR nT = 1 TO 100000 GO 1 IN res51 ENDFOR ? "100.000 Go's in current workarea", SECONDS() - nSec nSec= SECONDS() SELECT Res51 FOR nT = 1 TO 100000 GO 1 IN res52 ENDFOR ? "100.000 go's in other workarea", SECONDS() - nSecAny comments ?