Hallo,
ist es realistisch das dass ausführen des Folgenden SQL-Commandos
ca 1,5 sec dauern könnte?
Mein Chef sagt es müsste schneller gehen, habe aber keine Anung wie ich
das anstellen soll!
!Danke für jeden Tipp(Hilfe)!
Das Sql_Commando wird von einem Client zu einem Server auf der die Datenbank ist geschikt.
Datenbank: MySql4.1
im Commando sind 3 Sub-Select's
und 2 Sub-Sub-Select's
Die Datenmenge der einzelnen Tabellen variieren zurzeit um die 800
:mod:
SELECT
kalkulation_controlling.auftraege.auftragsnr,
kalkulation_controlling.auftraege.angebotsnr,
kalkulation_controlling.auftraege.auftragstyp,
kalkulation_controlling.auftraege.fk_anlagennr,
kalkulation_controlling.auftraege.auftragsstatus,
kalkulation_controlling.auftraege.kunde,
kalkulation_controlling.auftraege.bestellnrkunde,
kalkulation_controlling.auftraege.bestelldatum,
kalkulation_controlling.auftraege.bezeichnung,
kalkulation_controlling.auftraege.produktbereich,
kalkulation_controlling.auftraege.projektleiterintern,
kalkulation_controlling.auftraege.verkaeufer,
kalkulation_controlling.auftraege.techasp,
kalkulation_controlling.auftraege.kaufmasp,
kalkulation_controlling.auftraege.waehrung,
kalkulation_controlling.auftraege.eingabedatum,
kalkulation_controlling.auftraege.eingegebenvon,
sum(auftragspositionen.gepl_menge*auftragspositionen.gepl_einzelkosten) as Sollkosten_gesamt,
TempTable.Istkosten_gesamt,
sum(auftragspositionen.vkpreis) as Auftragswert,
LeistungsTable.Istkosten_Leistung,
LeistungsTable.Sollkosten_Leistung,
MaterialTable.Istkosten_Material,
MaterialTable.Sollkosten_Material
FROM auftragspositionen
RIGHT JOIN auftraege ON auftraege.auftragsnr = auftragspositionen.fk_auftragsnr
LEFT JOIN
(SELECT kalkulation_controlling.auftraege.auftragsnr, sum(kalkulation_controlling.dienstleistungserfassung.menge*kalkulation_controlling.dienstleistungserfassung.kostenproeinheit) as Istkosten_gesamt
FROM kalkulation_controlling.auftraege LEFT JOIN kalkulation_controlling.dienstleistungserfassung
ON kalkulation_controlling.auftraege.auftragsnr = kalkulation_controlling.dienstleistungserfassung.fk_auftragsnr
GROUP BY kalkulation_controlling.auftraege.auftragsnr) As TempTable ON TempTable.auftragsnr = kalkulation_controlling.auftraege.auftragsnr
LEFT JOIN
(SELECT auftraege.auftragsnr, Dienstleistungen.Sollkosten_Leistung As Sollkosten_Leistung,
sum(dienstleistungserfassung.menge*dienstleistungserfassung.kostenproeinheit) as Istkosten_Leistung
FROM auftraege LEFT JOIN dienstleistungserfassung ON auftraege.auftragsnr = dienstleistungserfassung.fk_auftragsnr
LEFT JOIN
(SELECT auftragspositionen.fk_auftragsnr, auftragspositionen.gepl_menge, auftragspositionen.gepl_einzelkosten,
sum(auftragspositionen.gepl_menge*auftragspositionen.gepl_einzelkosten) as Sollkosten_Leistung
FROM auftragspositionen
WHERE auftragspositionen.leistungskategorie = "D"
GROUP BY fk_auftragsnr) As Dienstleistungen
ON auftraege.auftragsnr = Dienstleistungen.fk_auftragsnr
GROUP BY auftraege.auftragsnr) As LeistungsTable
ON LeistungsTable.auftragsnr = auftraege.auftragsnr
LEFT JOIN
(SELECT auftraege.auftragsnr, Materialkosten.Sollkosten_Material As Sollkosten_Material,
sum(materialkostenerfassung.menge*materialkostenerfassung.ekpreis) as Istkosten_Material
FROM auftraege LEFT JOIN materialkostenerfassung ON auftraege.auftragsnr = materialkostenerfassung.fk_auftragsnr
LEFT JOIN
(SELECT auftragspositionen.fk_auftragsnr, auftragspositionen.gepl_menge, auftragspositionen.gepl_einzelkosten,
sum(auftragspositionen.gepl_menge*auftragspositionen.gepl_einzelkosten) as Sollkosten_Material
FROM auftragspositionen
WHERE auftragspositionen.leistungskategorie = "M"
GROUP BY fk_auftragsnr) As Materialkosten
ON auftraege.auftragsnr = Materialkosten.fk_auftragsnr
GROUP BY auftraege.auftragsnr) As MaterialTable
ON MaterialTable.auftragsnr = auftraege.auftragsnr
WHERE auftraege.bestelldatum LIKE "%2005"
AND auftraege.auftragsstatus LIKE "%"
GROUP BY auftraege.auftragsnr