PDA

View Full Version : SQL View langsam / kein Wunder



ILEMax
15-05-07, 17:46
Tachchen zusammen.
ich bin auf eine Datei mit 4,5 Mio Datensätzen gestoßen, Tendenz stark steigend. Eine Schnittstellensammeldatei mit dem Aufbau: Schnittstellenart und Daten. Nun muß ich aus 15 verschiedenen Schnittstellenarten das Produkt ermitteln. Leider steht das Produkt in jeder Art an anderer Stelle. Also create View... When ... substr...
alles Klar, select * from view geht super.
Mach ich aber ein "order by produkt' wart ich 4-5 minuten. "index on" geht nicht. gibt's etwas anderes ?
Danke
Euer Max

Fuerchau
15-05-07, 17:51
Da streikt selbst der beste Optimizer wenn über substr-fields ein order by gelegt wird.

Auch wenn manche dagegen sind, hier helfen ggf. mehrere LF's mit berechneten Feldern SST und Schlüssel über das SST-Feld.

Anschließend per
select sstfeld ... from LF1
union [all]
select sstfeld ... from LF2
...
order by sstfeld

Ich denke, das müsste schnell genug sein.

BenderD
15-05-07, 19:10
Hallo,

rein Datenbank intern sehe ich da erst mal nix, vom Datenbankaufbau könnte man natürlich ein Produktfeld anhängen und die Programme auf eine View jagen, die so aussieht und heißt wie jetzt. Das Produktfeld wird dann über Trigger automatisch mitgepflegt, et voila: schnell wie die Ratte und keine Änderung in der Applikation erforderlich.

mfg

Dieter Bender


Tachchen zusammen.
ich bin auf eine Datei mit 4,5 Mio Datensätzen gestoßen, Tendenz stark steigend. Eine Schnittstellensammeldatei mit dem Aufbau: Schnittstellenart und Daten. Nun muß ich aus 15 verschiedenen Schnittstellenarten das Produkt ermitteln. Leider steht das Produkt in jeder Art an anderer Stelle. Also create View... When ... substr...
alles Klar, select * from view geht super.
Mach ich aber ein "order by produkt' wart ich 4-5 minuten. "index on" geht nicht. gibt's etwas anderes ?
Danke
Euer Max

ILEMax
24-05-07, 09:15
Also vielen Dank für die Ideen

leider kann ich keinen Trigger auf die Datei legen und das mit den vielen logischen hat nix gebracht.
Manchmal verliert man, manchmal gewinnen die anderen.

Schade


Max