index-problem bei großen datenbanken (über 4 mill datensätze)

Klaus Lehmann lehmann_klaus at t-online.de
Sa Sep 4 12:02:12 CEST 2004


werte kollegen



ich stecke seit einigen wochen an einem problem fest, und konnte es etwas einkreisen.


folgendes:
==========
es gilt die deutsche DB-cdrom perso/körpi/sw als allegro-datenbank zu generieren.
alles soweit kein problem. die daten kommen prima aus der cdrom heraus. das dauert so seine 3 tage.

die cdrom für 2004 ergibt das an datenmaterial:
ich habe 57 ald_dateien a 16MB zu indexieren. das sind ca 870MB an reinem ald_datenmaterial.



infos:
======
die cdrom für 2003(!):
hier gibt es 46 ald's mit 700MB
1x adx mit 780mb
1x stl mit 250mb
1x tbl mit 14mb

also schätze ich, daß für die 2004'ausgabe eine adx mit ca 1GB entstehen wird. (zuwachs um 25%).


benutzt wird:
index.exe  1. jun 2004
qrix.exe   20.apr 2004




das problem:
============
der indexvorgang soll so sein: (für die 2003'er ausgabe hat das wunderbar geklappt!)

rem folgendes empfiehlt die cockpit-index-routine (18.5.00)
o:\allegro\index -Po:\allegro -f70 - at 1 -n0 -m0 -kadbc -d*o:\dbc\dbc -edbc/o:\dbc -lGER
(umbenennen der proto?-files!)
o:\allegro\index -Po:\allegro -fi1 - at 2 -n0 -m0 -kadbc -d*o:\dbc\dbc -edbc/o:\dbc -lGER
(umbenennen der proto?-files!)
also, das bekannte 2-stufige-index-verfahren!


indexiere ich diese datenbank mit den 57 ald's in "einem" rutsch (mit je - at 1 und - at 2 wie oben notiert!), 
läuft der erste index-abschnitt ohne probleme durch. 
der 2 abschnitt anscheinend(!) auch ohne probleme durch, eine adx in der größe von ca 1GB entsteht. von der 
größe also ganz ok.
benutzt man diese datenbank, sind sehr wenig(!) einträge in register1, 10.000 vielleicht, hier müssten 
hundertausende von einträgen zu finden sein! die anderen register für körpis und sw's scheinen wohlgefüllt 
zu sein.
also hat der indexvorgang das register1 nicht sauber geschrieben.
es gibt keinen(!) braucbaren hinweis in den proto?-files.

dieses habe ich wiederholt. der indexvorgang dauert bei dieser größe ca 1 1/2 tage! man muss also sehr viel 
geduld haben UND große platten..... ;-)
hierzu: es gibt keine restfiles, wie i-files, alles scheint sauber wegindexiert/geqrixt zu sein!!



um zu sehen, wo der fehler (welcher?) auftritt, wird die datenbank_indexierung in mehrere teile geteilt:
erst indexiere ich perso's in eine EINSER-datenbank (datenbank mit 1 satz). 
allerdings kann ich obiges indexverfahren nicht benutzen, sondern gehe so vor:

o:\allegro\index -Po:\allegro -f71 -do:\dbc\100\dbc_100.ald -edbc/o:\dbc -n100 -kadbc -m0 -h0 -v0

o:\allegro\index -Po:\allegro -f71 -do:\dbc\100\dbc_101.ald -edbc/o:\dbc -n101 -kadbc -m0 -h0 -v0

o:\allegro\index -Po:\allegro -f71 -do:\dbc\100\dbc_102.ald -edbc/o:\dbc -n102 -kadbc -m0 -h0 -v0

usw.

beobachtung
es gibt immer einen ersten indexierungsdurchgang!
ich sehe ganz kurz nach beendigung diesens, "2nd run" in grün aufblitzen, ohne ergebnis, dann geht er z.b. 
zur datei 101 (s.o.).... (was passiert hier? besser gefragt: was passiert hier nicht!?)

so. obiges kann ich nun bis ca zur 52. datei durchführen. es entsteht eine adx mit einer größe von 1,05GB, 
also eine plausible größe!




nehme ich nun die 53.datei (sie sind immer 16MB groß, die ald's), passiert das:
(mitschrift auf dem screen, das steht NICHT in der protoq!)

ii27 was the last file
1695400
Zwischendateien 18 - 27 sind gemischt

 ii28 was the last file

 file o:\dbc\ii3 was the last file
 Endphase: nur noch 3 Dateien

  INDEX 1 wird bearbeitet

   INDEX 1 enthält 4656209 Einträge
   c-tree fatal error #235.


#235 ist nicht dokumentiert (laut handbuch). was hat dieser zu sagen?
es ist also eine qrix-fehlermeldung...... qrix kann nicht in die vorhanden adx reinqrixen!? 
sehe ich das richtig?

auf der festplatte sind ca 2GB an freiem platz.




wo ist der fehler zu suchen????
hat eine ald EIN problem?
oder die adx?

bringt eine fehlersuche mit sniffer was? (vermutlich...)

so habe ich den fehler noch nie gesehen. ist es evtl ein problem mit SEHR großen datenmengen????
die dbc wird vermutlich 5 mill. datensätze haben.....



wer kann helfen?
oder gedankenansätze geben?




danke sehr.
viele grüße
ihr
k.lehmann






Mehr Informationen über die Mailingliste Allegro