
wilmau
-
Gesamte Inhalte
31 -
Benutzer seit
-
Letzter Besuch
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Beiträge von wilmau
-
-
alle Tabellen haben einen Primärindex (Primärschlüssel)
aber keinen extra Index!
-
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
-
Ende der Ausbildung, nun steht die Projektarbeit an
bitte höflichst um Verbesserungsvorschläge für meinen Projektantrag
Fachinformatiker Schwerpunkt Anwendungsentwicklung
------------------------------
Projektbezeichnung (Auftrag/Teilauftrag):
Sql-Filter-Generator
------------------------------
Kurze Projektbeschreibung:
Es soll eine Klasse entwickelt werden, die es dem Programmierer ermöglicht, schnell einen Filter Mechanismus im Programm zu implementieren, der auf effizienter weise Daten gefiltert zu Verfügung stellt.
Diese Klasse kann im Programm mit eingebunden werden und anhand von Schnittstellen können Werte gesetzt werden.
Die Klasse stellt Funktionen zum setzen der Attribute bereit.
Der Vorteil des Sql-Filter-Generators gegenüber dem eigenhändigem erstellen von Filterfunktionen ist,
das
• diese Klasse an mehrere Komponenten gebunden werden kann, was dazu führt, dass überall der gleiche Filterstatus ist
• anhand des Sql-Generators der Sql-String automatisch erstellt wird
• durch effiziente Auswahl der Operatoren im Sql-String die Geschwindigkeit optimiert wird
--------------------------------------------
Projektphasen mit Zeitplanung in Std.:
Bezeichnung Std.
Analysephase 12
• Analyse des Ist-Zustandes
• Definition des Soll-Zustandes
• Erstellung des Fachkonzeptes
Designphase
• Beschreibung der Klasse und ihrer Anwendung
mittels UML-Diagrammen 10
• Erstellung des DV-Konzeptes 8
Realisierung
• Implementierung der Bibliothek 32
• Implementierung in einer prototypischen Anwendung
4
Dokumentation
• Programmierer-Dokumentation der Klasse 4
Gesamtstundenzahl für die Projektarbeit: 70
Die Projektarbeit beinhaltet folgende Dokumente:
Nicht selbständig erstellte Dokumente sind mit "(x)" zu kennzeichnen !
Fachkonzept (Ergebnis der Analysephase)
DV-Konzept (Ergebnis der Designphase)
Programmierer-Dokumentation als HTML-Hilfe Datei (in englisch!)
Projektquellcode
Präsentation als PowerPoint Datei
Danke :nett:
-
:marine :marine :marine
super, das war der Haken, jetzt funkioniert es auch.
Danke.
-
sql - brauche dringend hilfe :bimei
dieser Befehl soll felder berechnen und diese
mit der Tabelle auftraege anzeigen
die berechnung für Sollkosten ist aber falsch, da er drei tabellen zusammenschmeißt und dann erst die einzelnen Felder berechnet und weil
in der tabelle dienstleistungserfassung mehrere auftragsnummern sind,
kommt eine auftragsnummer in der zusammengeschmißenen Tabelle
auch mehrmahls.
Dadurch werden einige Felder mehrmals summiert, was zu einem falschem
Ergebniss führt!
hier mein Sql-Befehl
SELECT
auftraege.auftragsnr,
sum(auftragspositionen.vkpreis) as Auftragswert,
sum(auftragspositionen.gepl_menge*auftragspositionen.gepl_einzelkosten) as Sollkosten,
sum(dienstleistungserfassung.menge*dienstleistungserfassung.kostenproeinheit) as Istkosten
FROM auftraege
LEFT JOIN auftragspositionen ON (auftraege.auftragsnr = auftragspositionen.fk_auftragsnr)
LEFT JOIN dienstleistungserfassung ON (auftragspositionen.fk_auftragsnr = dienstleistungserfassung.fk_auftragsnr)
WHERE auftraege.auftragsnr = 20040022
GROUP BY auftragspositionen.fk_auftragsnr
Danke! :marine
Ausführungsdauer Sql -> realistisch?
in Datenbanken
Geschrieben
habe es jetzt mit zusätzlichem Index versucht-> resultat
von ca 1,25 sec auf ca 0,05sec
echt Super -> Danke