Hello Mindaugas,

>
> It seems disk io is the bottle neck. You can try to use memio driver
> to create index in memory, and later write it back to disk.
>
Please could you tell me how to create the index in memory and then
flush to disk?
>
>>             aadd( aThreads, hb_threadStart( @crea(), cAlias,cExpr,
>> cFileNtx, cFor, nPos, nPosLinea ) )
>> ...
>> proc crea( cAlias, cExpr, cFileNtx, cFor, nPos, nPosLinea )
>>        Local nContador := 1
>>
>>         hb_dbRequest( cAlias, , , .T.)  // Restaura el alias
>>         if empty( cfor )
>>             INDEX ON&(cExpr) TO&(cFileNtx) ;
>> ...
>>         endif
>>         hb_dbDetach( cAlias )          // Libera el alias
>> return
>
> These crea() threads do not help to do any valuable job. Function
> aCreateIndexe() starts a separate crea() thread for each index tag,
> but indexes are not created in parallel, because only one thread has
> attached area.
>
Is it possible to improve this aspect?
Under Windows, usndo ProcessXP, I could see the threads of the indices
only run one at a time, while the rest is waiting ....

Regards
Rafa Carmona



_______________________________________________
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to