Hallo,
wir haben folgendes Problem:
Wir wollen eine DB entwerfen, die Inhalte verschiedenster Kategorien speichert (Fachdaten für ein GIS-System).
Nun haben wir uns zu einem Entwurf entschlossen, der in etwa so aussieht:
[Stammdaten] (ID, Feld1, Feld2 ..)
[Detailtext] (ID, FK_Stammdaten_ID, FK_Texttype_ID, Text]
[Texttype] (ID, Bezeichnung, Vorgabe)
[Detailwert] (ID, FK_Stammdaten_ID, FK_Werttype_ID, Wert]
[Werttype] (ID, Bezeichnung, Vorgabe)
(ich hoffe es ist verständlich geschrieben ?!)
Damit können wir verschiedenste Parameter (Text und Zahl) zum Objekt (Stammdatensatz) speichern.
Nun kommen da ein paar Leute die sagen, das es mit sehr großen Datenmengen ( größer 1-2GB) bei Anfragen (Join über diese Tabellen um alle zum Datensatz gehörigen Parameter incl. Type auszulesen) zu "unverantwortlichen Abfragezeiten" kommt. Und wollen daher einfach die Stammtabelle um ... Felder erweitern.
Jedoch wird doch die DB dadurch nicht mehr skalierbar.
Für jeden Sachverhalt ein neues Feld (DB-Design nach EXCEL Manier).
Meine Meinung ist jedoch : Natürlich kommt es zu sehr hohen Abfragezeiten, wenn ich die Tabellen (gerade Detailtext und Detailwert) mit einem normalen Join verbinde. Da Oracle im Hintergrund eine Produkttabelle aus den Joins aufbauen muß.
Wenn diese Tabellen dann mehrere Mio-DS haben, dann .....
Aber wenn ich die Detailtabellen vorselektiere und diese "Selects" mit einem Join verbinde, dann sollten doch die Zeiten ertäglich bleiben. Oder?
Gibt es ähnliche Entwürfe (wie unsere) mit sehr vielen Datensätzen im Einsatz. Wie sind dort Erfahrungen mit Joins etc.?
Gruß Mario
wir haben folgendes Problem:
Wir wollen eine DB entwerfen, die Inhalte verschiedenster Kategorien speichert (Fachdaten für ein GIS-System).
Nun haben wir uns zu einem Entwurf entschlossen, der in etwa so aussieht:
[Stammdaten] (ID, Feld1, Feld2 ..)
[Detailtext] (ID, FK_Stammdaten_ID, FK_Texttype_ID, Text]
[Texttype] (ID, Bezeichnung, Vorgabe)
[Detailwert] (ID, FK_Stammdaten_ID, FK_Werttype_ID, Wert]
[Werttype] (ID, Bezeichnung, Vorgabe)
(ich hoffe es ist verständlich geschrieben ?!)
Damit können wir verschiedenste Parameter (Text und Zahl) zum Objekt (Stammdatensatz) speichern.
Nun kommen da ein paar Leute die sagen, das es mit sehr großen Datenmengen ( größer 1-2GB) bei Anfragen (Join über diese Tabellen um alle zum Datensatz gehörigen Parameter incl. Type auszulesen) zu "unverantwortlichen Abfragezeiten" kommt. Und wollen daher einfach die Stammtabelle um ... Felder erweitern.
Jedoch wird doch die DB dadurch nicht mehr skalierbar.
Für jeden Sachverhalt ein neues Feld (DB-Design nach EXCEL Manier).
Meine Meinung ist jedoch : Natürlich kommt es zu sehr hohen Abfragezeiten, wenn ich die Tabellen (gerade Detailtext und Detailwert) mit einem normalen Join verbinde. Da Oracle im Hintergrund eine Produkttabelle aus den Joins aufbauen muß.
Wenn diese Tabellen dann mehrere Mio-DS haben, dann .....
Aber wenn ich die Detailtabellen vorselektiere und diese "Selects" mit einem Join verbinde, dann sollten doch die Zeiten ertäglich bleiben. Oder?
Gibt es ähnliche Entwürfe (wie unsere) mit sehr vielen Datensätzen im Einsatz. Wie sind dort Erfahrungen mit Joins etc.?
Gruß Mario
Comment