Sprint
Erfahrenes Mitglied
Hallo zusammen,
ich habe hier eine recht umfangreiche Abfrage mit mehreren Subselects, die zwar funktioniert, aber pro Datensatz etwa eine Viertelsekunde braucht. Und bei 40-50 Abfragen summiert sich das ganz schön.
Kann das zeitlich noch optimiert werden oder müssen wir damit leben?
ich habe hier eine recht umfangreiche Abfrage mit mehreren Subselects, die zwar funktioniert, aber pro Datensatz etwa eine Viertelsekunde braucht. Und bei 40-50 Abfragen summiert sich das ganz schön.
PHP:
if ($np == 1){
$np1 = $bubfelder;
$np2 = 'n.npexpress, n.zeit as nachzeit, n.h48,';
$np3 = ', nachprf n';
$np4 = ' and p.pid = n.pruefnr and n.erledigt = 0';
$np5 = "and n.lfnr = '$lfnr'";
}
$sql = "
SELECT p.pid AS suchpid,
k.firmenname AS kdname,
p.zeit,
vk.nachname,
vk.vorname,
vk.vknr,
p.firmenname AS prueffirmenname,
p.kdnr,
p.steuernr,
p.express,
p.status,
$np1
substr(p.usernr,1,5) AS dkundenr,
p.kdnr AS eukundenr,
p.gruen1,
$np2
(
SELECT date_format(zeit,'%d.%m.%Y')
FROM pruefung p
WHERE p.kdnr = eukundenr
AND substr(p.usernr,1,5) = dkundenr
ORDER BY zeit DESC
LIMIT 1) AS datum,
(
SELECT u.kuerzel
FROM user u,
pruefprot pp
WHERE u.user = pp.usernr
AND pp.pruefnr = suchpid
ORDER BY pp.zeit DESC
LIMIT 1) AS lastuser,
(
SELECT max(p.pid)
FROM pruefung p
WHERE substr(p.pid,1,5) = '$kdnr') AS maxpid,
(
SELECT k.firmenname
FROM kunden k
WHERE k.kdnr = eukundenr) AS firmenname,
(
SELECT s.sendezeit
FROM sendeliste s
WHERE s.pid = p.pid
AND erledigt = '0000-00-00 00:00:00'
ORDER BY s.slnr DESC
LIMIT 1) AS sendezeit
FROM pruefung p,
pruefvk vk,
kunden k
$np3
WHERE p.pid = '$pid'
AND k.kdnr = substr(usernr,1,5)
AND p.usernr = vk.vknr $np4 $np5";
Kann das zeitlich noch optimiert werden oder müssen wir damit leben?
Zuletzt bearbeitet: