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