![]() |
Datenbank: mysql • Zugriff über: ado
performance problem
Hallo Delphi-Freunde,
ich habe folgenden SQL Code und die Performance ist einfach gruselig... Die Abfrage dauert geschlagene 2 Minuten!!! Wie kann sowas sein??
SQL-Code:
Ganz liebe Grüße von der sonnigen Ostsee, ich liege hier mit Laptop und UMTS Karte am Strand (O2 mach es für 25 Euro Mtl. möglich)
SELECT vorname, nachname, fach
FROM schueler s INNER JOIN schueler_faecher sf ON s.id = sf.id_schueler INNER JOIN faecher f ON sf.id_fach = f.id INNER JOIN schueler_klassen sk ON s.id = sk.idschueler WHERE idklasse = :KID AND NOT EXISTS (SELECT * FROM zeugnis WHERE id_schueler = s.id AND id_fach = sf.id_fach) |
Re: performance problem
Wie groß ist die Datenbank (Anzahl der Einträge in den entsprechenden Tabellen)?
Wieviel Speicher wird dem SErver zugestanden (die Standardinstallation von MySQL ist ziemlich sparsam, wenn nicht sozusagen knausrig)? Sind auf allen gejointen Felder Indize vorhanden? |
Re: performance problem
Und so (ohne Gewähr)?
SQL-Code:
SELECT vorname, nachname, fach
FROM schueler s INNER JOIN schueler_faecher sf ON s.id = sf.id_schueler INNER JOIN faecher f ON sf.id_fach = f.id INNER JOIN schueler_klassen sk ON s.id = sk.idschueler LEFT JOIN zeugnis z ON z.id_schueler = s.id AND z.id_fach = sf.id_fach WHERE idklasse = :KID AND z.id_schueler IS NULL |
Re: performance problem
Zitat:
Grundsätzlich scheint jedoch das Gerücht verbereitet zu sein, ein RDBMS (insbesondere MySQL) sei eine Zauberschachtel und 'unheimlich schnell'. Das einzige, was unheimlich schnell ist, ist die Verbreitung so eines Schmarrns :zwinker:. Ich hab sogar schon gehört, das so ein RDMBS sich seine Index mal eben optimal zusammenbaut... Eine RDBMS ist nur so schnell, wie das Server- und Datenbankdesign es zulässt. Und das ist reine Handarbeit. Wichtig ist 1. Gute Hardware (kein Turboteil, aber 1-4GB RAM sollten es schon sein), gute HD usw. 2. Gutes DB-Design. Eine Mischung aus 2. und 3.NF machts. 3. Indexe nur an den notwendigen Stellen, allerdings nicht bei kleinen Tabellen (10-50 Records) Dann gibt es noch ca. 175.819,3 Tipps und Tricks, wo man noch rumschrauben kann, aber wenn Du die ersten drei Punkte beachtest, kommst du schon sehr weit. |
Re: performance problem
danke erstmal für die guten tips, ich werde alles prüfen und dann morgen bescheid geben...
|
Re: performance problem
Ich würde das auch so probieren wie DeddyH das vorgeschlagen hat. Diese Unter-Selects sind ein ziemlicher Performance-Killer.
|
Re: performance problem
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:02 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz