Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Marcin - 05-04-2007 00:04 dBase, indexy i ODBC
Witam Mam bazę w dBase, która codziennie dla potrzeb aplikacji jest aktualizowana poprzez skopiowanie plikow dbf. W zrodlach DNS jest utworzony link do tej bazy. Niestety ostatnio coraz dluzej zajmuje czas poswiecany na wykoanie Select. W katalogu z baza caly czas sie pojawiaja nowe pliki dbf, natomiast jest jeden CDX sprzed dwoch lat (nie do najbardziej interesujacej mnie tabeli). Pytanie: czy plik cdx jest prawidlowym plikiem z indexami (nie mdx) oraz czy korzystajac z bazy za posrednictwem ODBC, pliki indeksujące są opcjonalne i może ich nie być, a jeśli zostaną umieszczone to ODBC będzie z nich korzystać autoamtycznie. Co w przypadku jeśli w zapytaniu ma Where ... AND... AND .... Pozdrawiam Marcin
Pliki dbf obsługiwane przez DBase (Fox) lub Clipper tworzą pliki indeksowe dzięki specjalnemu poleceniu "index on...". Najprościej byłoby wykorzystac jeden z takich programów (np dbu.exe) i za jego pomoca utworzyć pliki indeksowy, wówczas będzie widac jaki rozmiar ma taki plik i poównac go z tym który tam jest. Sam mechanizm ODBC nie zarządza plikami indeksowymi - musiałaby mieć możliwość wskazania takiego pliku dbf wraz ze skojarzonym z nim plikiem indeksowym (przy czym DBase tworzy inne pliki indeksowe, fox inne a clipper jeszcze inne - to chyba była tak DBase tworzy idx, clipper ntx a fox cdx). Nawet Clipper (Fox czy DBase) nie aktualizowały plików indeksowych jezeli się ich jawnie nie otwarło razem z plikiem dbf (trzeba było otworzyc plik dbf z jego wszystkimi plikami indeksowymi wtedy się miało pewność że one też będą zaktualizowane, przy czy na raz mogło byc chyba otwartych 7 plików indeksowych). Jak się stosuje taki mechanizm jak BDE to tam już można powiazać ODBC z plikami indeksowanymi.
W tym przypadku podejrzewam, ze plik indeksowyu nie jest automatycznie kojarzony z plikiem dbf, ani tym bardziej aktualizowany. Podejrzewam również że prędkość przetwarzania będzie maleć wraz ze wzrostem objętości (Najszybciej chyba przetwarzał pliki FoxPlus).
Może po prostu napisac jakiś program konwerter który dane z dbf przerzuci do jednej z SQL'owych baz.
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona