Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Incredible performance degration behaviour
Message
De
13/01/2005 10:01:35
Walter Meester
HoogkarspelPays-Bas
 
 
À
Tous
Information générale
Forum:
Visual FoxPro
Catégorie:
Base de données, Tables, Vues, Index et syntaxe SQL
Titre:
Incredible performance degration behaviour
Versions des environnements
Visual FoxPro:
VFP 8 SP1
Divers
Thread ID:
00976753
Message ID:
00976753
Vues:
70
See the following
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() - nSec
Any comments ?
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform