Information générale
Catégorie:
Codage, syntaxe et commandes
>I have a 1 million row table with a primary key of RECNO(). I need to pull random sets of 100 contiguous rows from the table. I have tried 3 things:
>
>1) SELECT * FROM table WHERE PriKey>=N AND PriKey>2) SEEK followed by COPY TO ARRAY
>3) SEEK followed by SCAN
>
>All three get a throughput of about 10 requests per second. This seems slow to me. Would anyone disagree? Can you suggest a better way to do the requests?
>
>Especially in the SCAN case I am puzzled. It would seem that all FoxPro has to do is read the records sequentially (I tried using SET ORDER TO 0 and NOOPTIMIZE), yet my disk's average transfer rate is 5 times the result set size and my CPU is at 15%.
>
>Also, in the SELECT case, I am collecting statistics and I see some requests taking 10 milliseconds and others taking 450 milliseconds. Based on the ranges requested, it does not look like buffering is causing the speedy ones so could disk fragmentation be causing the slow ones?
Hi Jim:
PMFJI: Don't know if you did this on purpose, but since this is a duplicate of the text from your other thread titled: 'big table performance' -- for future reference, you'll get better attention here if you keep the same request to a single thread on the same day... Then, if you don't get responses, you might try a different title a few days later... FWIW...
Rob
Précédent
Suivant
Répondre
Voir le fil de ce thread
Voir le fil de ce thread à partir de ce message seulement
Voir tous les messages de ce thread
Voir tous les messages de ce thread à partir de ce message seulement