Ich führe eine Abfrage, um einige Zahlen zu zählen und es scheint super langsam zu laufen. Dies ist auf einem MSSQL-Server. Es dauert ungefähr 22 Sekunden, um die Abfrage mit nur 34 zurückgegebenen Datensätzen auszuführen. Das Problem ist, dass ich mehrere SUMs zur gleichen Zeit laufen lasse und die Ausführungszeit summiert sich. Ich habe die SQL-Anweisung hier auf die Barebones von dem, was ich brauche, vereinfacht. Wie laufe ich das schneller?mit SUM mit einem Bereich, verschachtelte SQL, läuft langsam
SELECT
SUM(case when (claims.dateon >= '20161110' AND claims.dateon < '20161117') AND entries.errorCode NOT IN('DP','RB','WP','PE','OV') then entries.refundDue else 0.0 end) as rate1
FROM auditors
INNER JOIN claims
ON claims.auditorID = auditors.auditorID
AND claims.status='closed'
--AND (claims.dateon >= '20161020' AND claims.dateon < '20161117')
INNER JOIN entries
ON claims.rID = entries.rid
WHERE claims.status = 'closed'
AND (claims.dateon >= '20161020' AND claims.dateon < '20161117')
GROUP BY auditors.auditorID
Leistungsfragen sollten "EXPLAIN ANALYSE" und einige Informationen über Tabellengröße, Index, aktuelle Zeitleistung, Wunschzeit usw. enthalten. "Langsam" ist ein relativer Begriff und wir brauchen einen echten Vergleichswert. –
Ich bin nicht zu sehr mit SQL Erfahrung, so erklären, dass dies das erste ist, das ich davon höre. Sorry über die langsamen, aber 22 Sekunden. Ich gehe davon aus, dass der zurückgegebene Betrag <1 Sekunde sein sollte. – Damien
check [hier] (http://stackoverflow.com/questions/7359702/how-do-i-obtain-a-query-execution-plan) auch eine Beschreibung Ihrer Tabellen und wie viele Zeilen haben, und was Sie indiziert werden –