Hi,
ja, da sollte noch mehr gehen.
Indexes setzen, welche genau und nur die Felder beinhalten, die abefragt (ausgegeben) werden oder für die Schlüsselbeziehung notwendig sind.
Aber wie sieht z.b die Tabellenstruktur für 4 und 5 aus?
Ausschlaggebend ist auch nicht unbedingt der Durschscnitt von Kombinationen am Ende, sondern bereits vorher. Wenn du aufgrund ungünstig gewählter Strukturen erstmal 2 Mio Datensätze und damit vielleicht 1.5 GB an Datenvolumen generierst, ist das nicht unbedingt optimal. (... dank LEFT oder RIGHT OUTER JOINS)
Musst du denn auch gleichzeitig immer "alles" (1 bis 5) darstellen? Sonst mach doch Views oder Prozeduren, die weniger Daten generieren und spezifisch für eine bestimmte Ansicht sind. 1, 2 und 3 oder 1, 4 und 5 lassen sich gut kombinieren. Wenn dann auch noch 2 und 3 oder 4 und 5 aus der selben Tabelle gezogen werden können, verminderst du sicher das Datenvolumen der Abfrage.
Ciao, Frank