Hallo zusammen,
ich habe bereits im Bereich mysql eine Frage zu einer Abfrage gestellt, aber mir wurde da mitgeteilt, dass ich hier mit Oracle besser aufgehoben bin. Ich habe folgendes "Problem" mit der Performance einer Abfrage.
Zur Erklärung: Mit ID ist eine Teilenummer gemeint und mit Wert ein Messwert und mit Operation eine Messoperation. Das Teil kann an mehreren Operationen gemessen werden
Die Ausgangsabfrage ist folgende...
...mit dieser erhalte ich folgendes Ergebnis nach ca. 0,01 Sekunden:
ZEILE | ID | OPERATION | Wert
1 | MW2033117686 | 5040 | 7,2
2 | MW2033117686 | 8340 | 5,3
Da ich aber folgendes Ergebnis möchte..
ID | OPERATION_1 | Wert_1 |OPERATION_2 | Wert_2
MW2033117686 | 5040 | 7,2 | 8340 | 5,3
...habe ich nach einem Vorschlag den select-Teil folgendermaßen abgeändert, wobei der Rest unverändert bleibt.
Das Ergebnis wird auch ausgegeben, allerdings werden fast 50 Sekunden dafür benötigt.
Wie kann ich die Abfrage ändern, damit sie schneller läuft.
Gruß, Matthias
ich habe bereits im Bereich mysql eine Frage zu einer Abfrage gestellt, aber mir wurde da mitgeteilt, dass ich hier mit Oracle besser aufgehoben bin. Ich habe folgendes "Problem" mit der Performance einer Abfrage.
Zur Erklärung: Mit ID ist eine Teilenummer gemeint und mit Wert ein Messwert und mit Operation eine Messoperation. Das Teil kann an mehreren Operationen gemessen werden
Die Ausgangsabfrage ist folgende...
PHP:
WITH
u2(Zeile,ID,Warp,operation,waf_Flag) AS (
SELECT
ROW_NUMBER() OVER (PARTITION BY w.ID ORDER BY adel.operation) AS Zeile
,w.ID
,adew.warp
,adel.operation
,adew.waf_flag
FROM
LOADER.WAFERS w
INNER JOIN LOADER.LWADE_WAFERS adew ON w.sid = adew.waf_sid
INNER JOIN LOADER.LWADE_LOTS adel ON adew.lothis_sid = adel.lothis_sid
)
SELECT
u2.Zeile
,w.ID
,u2.operation
,u2.warp as Wert
FROM
LOADER.WAFERS w
INNER JOIN MPPDBB_OWNER.ingot_segments ise ON ise.ingot_seg = w.ingot_seg and w.id in 'MW2033117686'
LEFT JOIN u2 ON w.ID = u2.ID
...mit dieser erhalte ich folgendes Ergebnis nach ca. 0,01 Sekunden:
ZEILE | ID | OPERATION | Wert
1 | MW2033117686 | 5040 | 7,2
2 | MW2033117686 | 8340 | 5,3
Da ich aber folgendes Ergebnis möchte..
ID | OPERATION_1 | Wert_1 |OPERATION_2 | Wert_2
MW2033117686 | 5040 | 7,2 | 8340 | 5,3
...habe ich nach einem Vorschlag den select-Teil folgendermaßen abgeändert, wobei der Rest unverändert bleibt.
PHP:
SELECT
w.ID
,u2.operation as Operation_1
,u2.warp as Wert_1
,u3.operation as Operation_2
,u3.warp as Wert_2
FROM
LOADER.WAFERS w
INNER JOIN MPPDBB_OWNER.ingot_segments ise ON ise.ingot_seg = w.ingot_seg and w.id in 'MW2033117686'
LEFT JOIN u2 ON w.ID = u2.ID AND u2.zeile = '1'
LEFT JOIN u2 u3 ON w.ID = u3.ID AND u3.zeile = '2'
Das Ergebnis wird auch ausgegeben, allerdings werden fast 50 Sekunden dafür benötigt.
Wie kann ich die Abfrage ändern, damit sie schneller läuft.
Gruß, Matthias