Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Speeding up search - Locate For or Seek?
Message
De
27/07/2000 22:14:36
 
Information générale
Forum:
Visual FoxPro
Catégorie:
Codage, syntaxe et commandes
Divers
Thread ID:
00397065
Message ID:
00397977
Vues:
25
Sure, what the heck.
I made a couple of changes as I went, just to see some different things. e.g.
  1. I used a 100,000 record table instead of a cursor
  2. For all but the first test, I used INT(RAND()*100000) instead of 699
    to make sure I was always moving to a different record.
  3. I left the LOCATE loop alone, except for the change above
  4. I made a couple of changes to the SEEK() loop.
    e.g., Instead of flipping the order on and off, I left it set.
** original seek() loop
SET ORDER TO pID
lnTime = SECONDS()
FOR lnJ = 1 TO 10000
  SET ORDER TO pID
  SEEK(699)
  SET ORDER TO
ENDFOR
PIII 600 130M ram.
Anyway, I found some interesting results, especially the last 2 tests
where I used SET KEY TO instead of a SEEK

** AS IS
Locate: 1.77 seconds vs. Seek: 0.16 seconds.
Locate: 1.52 seconds vs. Seek: 0.16 seconds.
Locate: 1.63 seconds vs. Seek: 0.17 seconds.
Locate: 1.53 seconds vs. Seek: 0.16 seconds.
Locate: 1.52 seconds vs. Seek: 0.16 seconds.
Locate: 1.73 seconds vs. Seek: 0.17 seconds.
Locate: 1.84 seconds vs. Seek: 0.16 seconds.
Locate: 1.52 seconds vs. Seek: 0.16 seconds.
Locate: 1.79 seconds vs. Seek: 0.16 seconds.
Locate: 1.53 seconds vs. Seek: 0.16 seconds.

*** SET ORDER out of loop
Locate: 1.81 seconds vs. Seek: 0.12 seconds.
Locate: 1.51 seconds vs. Seek: 0.12 seconds.
Locate: 1.59 seconds vs. Seek: 0.13 seconds.
Locate: 1.52 seconds vs. Seek: 0.12 seconds.
Locate: 1.53 seconds vs. Seek: 0.11 seconds.
Locate: 1.59 seconds vs. Seek: 0.13 seconds.
Locate: 1.52 seconds vs. Seek: 0.12 seconds.
Locate: 1.53 seconds vs. Seek: 0.11 seconds.
Locate: 1.59 seconds vs. Seek: 0.13 seconds.
Locate: 1.52 seconds vs. Seek: 0.12 seconds.

*** NO order set
*** =SEEK(x, "test", "pid")
Locate: 1.79 seconds vs. Seek: 0.15 seconds.
Locate: 1.53 seconds vs. Seek: 0.15 seconds.
Locate: 1.63 seconds vs. Seek: 0.17 seconds.
Locate: 1.52 seconds vs. Seek: 0.15 seconds.
Locate: 1.53 seconds vs. Seek: 0.15 seconds.
Locate: 1.72 seconds vs. Seek: 0.16 seconds.
Locate: 1.52 seconds vs. Seek: 0.16 seconds.
Locate: 1.52 seconds vs. Seek: 0.15 seconds.
Locate: 1.79 seconds vs. Seek: 0.16 seconds.
Locate: 1.56 seconds vs. Seek: 0.15 seconds.

*** SET ORDER in loop
*** SET KEY TO instead of SEEK()
Locate: 1.78 seconds vs. SET KEY: 0.07 seconds.
Locate: 1.53 seconds vs. SET KEY: 0.07 seconds.
Locate: 1.52 seconds vs. SET KEY: 0.07 seconds.
Locate: 1.78 seconds vs. SET KEY: 0.07 seconds.
Locate: 1.52 seconds vs. SET KEY: 0.07 seconds.
Locate: 1.53 seconds vs. SET KEY: 0.07 seconds.
Locate: 1.79 seconds vs. SET KEY: 0.07 seconds.
Locate: 1.53 seconds vs. SET KEY: 0.06 seconds.
Locate: 1.53 seconds vs. SET KEY: 0.07 seconds.
Locate: 1.80 seconds vs. SET KEY: 0.06 seconds.

*** SET ORDER out of loop
*** SET KEY TO instead of SEEK()
Locate: 1.57 seconds vs. SET KEY: 0.02 seconds.
Locate: 1.52 seconds vs. SET KEY: 0.03 seconds.
Locate: 1.52 seconds vs. SET KEY: 0.03 seconds.
Locate: 1.69 seconds vs. SET KEY: 0.03 seconds.
Locate: 1.51 seconds vs. SET KEY: 0.03 seconds.
Locate: 1.52 seconds vs. SET KEY: 0.03 seconds.
Locate: 1.71 seconds vs. SET KEY: 0.02 seconds.
Locate: 1.53 seconds vs. SET KEY: 0.02 seconds.
Locate: 1.53 seconds vs. SET KEY: 0.03 seconds.
Locate: 1.66 seconds vs. SET KEY: 0.03 seconds.
Insanity: Doing the same thing over and over and expecting different results.
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform