Błąd #543
zamknięte22. [WYDAJNOSC-001] Usunąć N+1 przy liczeniu sum ewidencji
100%
Opis
Kolejność realizacji: 22/24
Problem:
Dla każdej ewidencji wykonywane jest osobne SUM.
Skutek / ryzyko:
Możliwa jest niespójność danych, błędny przebieg, nieaktualny raport albo niejednoznaczna historia operacji.
Docelowe rozwiązanie:
Jedno zapytanie z agregacją po mileage_register_id.
Pliki:
public/mileage_registers.php; public/trips.php
Kryteria akceptacji:
Rozwiązanie działa atomowo, zachowuje ciągłość przebiegu, nie zmienia po cichu zamkniętych okresów i pozostawia czytelny ślad tam, gdzie wykonywana jest korekta.
Uaktualnione przez Michał Kurkiewicz 5 dni temu
- Zmieniono Status z Nowy na Zamknięty
- Zmieniono % Wykonania z 0 na 100
Usunąłem problem N+1 podczas liczenia sum ewidencji.
W mileage_registers.php suma przejazdów jest teraz pobierana zbiorczo przez podzapytanie agregujące:
SELECT mileage_register_id, SUM
FROM trips
GROUP BY mileage_register_id
Nie jest już wykonywane osobne zapytanie SUM dla każdej ewidencji.
To samo zoptymalizowałem w trips.php na ekranie wyboru ewidencji. Dla otwartych okresów wyświetlana jest bieżąca suma przejazdów, a dla zamkniętych zachowana wartość zapisana w ewidencji.
Kontrola końcowa wykazała brak lokalnych zmiennych $stmt_sum we wszystkich czterech plikach.