Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Huge table and seek/indexseek commands
Message
 
 
À
09/08/2002 08:24:25
Walter Meester
HoogkarspelPays-Bas
Information générale
Forum:
Visual FoxPro
Catégorie:
Base de données, Tables, Vues, Index et syntaxe SQL
Divers
Thread ID:
00687800
Message ID:
00688012
Vues:
29
>HI Nadya,
>
>Have you tried to reindex the index? It might have become unbalanced.
>Another cause might be that the table is highly fragmented over the disk. Did you try to defragment
>
>Walter,

Walter,

Yes, I also suspected index corruption. Unfortunately, I have no control on it. The table is located on the server and I don't have an access to Data directory on this server. It's no use to ask the owner of the site to try to fix it. He spent too much of his time on this and now he is even not talking with me and refusing all my requests. I called him couple of times to Estonia...

Stupid me! Of course, I can just create a program to delete tag and recreate it and run it. I'll do it later!

Do you think, it would be OK to delete just one tag instead al all?

BTW, I have another idea. The resulting cursor already have all info. Instead of passing Subsc_ID I can pass the full string of info...

>>>>Hi everybody,
>>>>
>>>>I have a table with ~3MM records. The table has records with ID from 1 to 3MM in order (e.g. it's sorted already). I have an index on ID. I found, that I can easily search up to 10000, then search becomes extremely slow. I tried seek, seek(), indexseek(), select SQL. Nothing works.
>>>>
>>>>What can I do?
>>>
>>>Disregard. I just figured out the simplest solution. How blind we all were!!!
>>>
>>>Well, to my surprise this solution doesn't work either.
>>
>>Ok, I found, that the only command, that works quickly, is SET KEY TO All other commands (SEEK, INDEXSEEK, LOCATE FOR, GO TO, etc.) work extremely slow, when I need to find 125000 record. SET KEY works fast. But it always returns the same name, which is not correct.
>>
>>I'm going crazy.
>>
>>Here are all my attempts:
>>local cTitle
>>set deleted off
>>select subscribers
>>set order to tag subsc_id
>>*set order to && Try now without order
>>*go top
>>_nID=Request.QueryString("subsc_ID")
>>
>>*=indexseek(val(m._nID),.t.,'Subscribers','Subsc_ID')
>>*locate for Subsc_ID= val(m._nID)
>>*goto val(m._nID) && Table is sorted!!!
>>set key to range val(m._nID), val(m._nID) && Should return just one record
>>
>>*locate for recno()= val(m._nID)
>>
>>*select rtrim(subscribers.FirstName) + " " + *rtrim(subscribers.LastName) as cTitle ;
>>*from Subscribers where Subsc_ID = val(_nID) into cursor curTemp
>>*seek val(m._nID)
>>
>>As you see, I commented out every command. I tried each of them few times, none work.
>>
>>Could you please help me?
If it's not broken, fix it until it is.


My Blog
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform