Projekt

Ogólne

Profil

Akcje

Błąd #543

zamknięte

22. [WYDAJNOSC-001] Usunąć N+1 przy liczeniu sum ewidencji

Błąd #543: 22. [WYDAJNOSC-001] Usunąć N+1 przy liczeniu sum ewidencji

Dodane przez Michał Kurkiewicz 7 dni temu. Zaktualizowane 5 dni temu.

Status:
Zamknięty
Priorytet:
Normalny
Przypisany do:
-
Kategoria:
Ewidencja przebiegu
Data rozpoczęcia:
Data oddania:
% Wykonania:

100%

Szacowany czas:

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 Akcje #1

  • 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.

Akcje

Eksportuj do: PDF Atom