Search  
Saturday, February 11, 2012 ..:: Forum ::.. Register  Login
 Forum Minimize
Pentru a putea posta mesaje trebuie să vă înregistraţi.
Notă: Mesajele cu conţinut jignitor sau ilegal (inclusiv cereri de soft piratat) nu sunt acceptate şi vor fi şterse imediat .

Pentru a primi raspunsuri rapide si corecte, scrieti in mesaj ce intentionati sa faceti, ce mesaj de eroare primiti, in ce context si in urma caror actiuni. De asemenea, mentionati versiunea de FoxPro in care lucrati!
Dacă nu specificați versiunea, se consideră VFP 9.0 SP2.

SearchForum Home
  FoxPro  FoxPro 2.x DOS  optimizare citi...
 optimizare citire date
 
 8/29/2010 9:10:45 AM
User is offlineasecui
11 posts
www.orastieinfo.ro


optimizare citire date
 (N/A)
Trebuie sa citesc date din cateva tabele (*.DBF) de dimensiuni destul de mari: 400 MB pana la 1GB.
folosind o interogare de felul:
SELECT * FROM TBL_MARE WHERE COLOANA1 LIKE "%UNU%" AND COLOANA2 LIKE '%DOI%' AND ...

Problema care apare este ca dureaza destul de mult pana cand este executata interogarea.
M-ar interesa daca pot optimiza cumva procesul citirii datelor. Eventual cum as putea sa indexez DBF-ul.

Multumesc anticipat.
 8/29/2010 10:26:36 AM
User is offlineDaniel Buduru
2141 posts
1st




Re: optimizare citire date
 (N/A)
Interogarea dureaza mult pentru ca vfp scaneaza intreaga tabela pentru a gasi inregistrarile care corespund filtrului
Optimizarea consta in selectarea inregistrarilor utilizand indecsii tabelei, in loc de a o scana.

1. Indexeaza tabela dupa coloanele utilizate in filtru - coloana1, coloana2 si ce mai ai.
2. Daca ai SET DELETED ON, creeaza un index cu cheia DELETED(), chiar daca nu ai nici o inregistrare marcata pentru stergere
3. Foloseste in filtru expresii optimizabile
   coloana1 LIKE '%unu%' nu este optimizabila,
   coloana1 LIKE 'unu%' este partial optimizabila
   coloana1 ='unu' este optimizabila

Daca lungimea coloanelor pe care indexezi e mare iar indexul rezultat e si el mare, optimizarea nu va aduce un spor de viteza considerbil.
Daca vrei sa cauti cuvinte in text, asa cum arata filtrul din exemplul tau, nu vei reusi sa cresti semnificativ viteza, intrucat vfp nu poate indexa fiecare cuvant dintr-un camp.

Vezi mai multe despre optimizare aici:
http://msdn.microsoft.com/en-us/library/1f5d2sa3%28VS.80%29.aspx


Daniel Buduru
  FoxPro  FoxPro 2.x DOS  optimizare citi...

Search  Forum Home         

 Google Ads Minimize

    

Copyright 2002-2010 Profox   Terms Of Use  Privacy Statement