Witam ,
od razu uprzedzam ze na bazach sie nie znam, odrobine ich uzywam ale zaczelo mnie zastanawiac czemu jak mam 2300 faktur przechodzenie przez kolejne podstrony trwa az tak dlugo wiec zrobilem prosty test
zapytanie z funkcji GetInvoicesList() : SELECT id, number, cdate, customerid, name, address, zip, city, finished, SUM(value*count) AS value, COUNT(invoiceid) AS count
FROM invoices LEFT JOIN invoicecontents ON invoiceid = id
WHERE finished = 1 GROUP BY id, number, cdate, customerid, name, address, zip, city, finished ORDER BY cdate ASC
zmodyfikowalem na takie : SELECT id, number, cdate, customerid, name, address, zip, city, finished, SUM(value*count) AS value, COUNT(invoiceid) AS count
FROM invoices ,invoicecontents
WHERE finished = 1 and invoiceid = id GROUP BY id, number, cdate, customerid, name, address, zip, city, finished ORDER BY cdate ASC
i wynik mnie zaskoczyl : na moim p4 2.8 oryginalne zapytanie wykonywalo sie : Pokazanie rekordów 0 - 29 (2276 wszystkich, Wykonanie zapytania trwało 20.1586 sekund(y)) natomiast to zmodyfikowane : Pokazanie rekordów 0 - 29 (2276 wszystkich, Wykonanie zapytania trwało 0.1459 sekund(y))
wyniki obu zapytan byly identyczne wiec jezeli optymalizacja jest sluszna to zrobie maly update w cvs
btw. takie samo spowolnienie wystepuje przy uzytkownikach i pewnie tez LEFT JOIN tu psuje
uczestnicy (1)
-
detekt2@detekt.pl