Zna ktoś może sposób jak można sprawdzić ile zostało wykonanych zapytań do bazy danych podczas wykonywania jakiejś metody?
Pobieram z bazy danych rekordy:
List <Test> list = test.findAll();
następnie lista przekazywana jest do metody, gdzie jest pętla przechodząca po wszystkich dniach roku, weryfikuje czy wszystkie dni mają odpowiednio zapisane dane, jeśli nie zwraca błąd itp.
@TrackExecutionTime
public void checkWholeYear(List<Test> list) {
LocalDate now = dateService.getDateNow();
LocalDate firstDay = now.with(firstDayOfYear());
LocalDate lastDay = now.with(lastDayOfYear());
while (firstDay.isBefore(lastDay))
{
...
}
}
Nie wklejam całego kodu bo jest go sporo ale w pętli while występuje wiele miejsc gdzie wyciągane są dane z przekazanej listy.
Metoda wykonuje się bardzo długo, czas wykonania sprawdzam korzystając z tego rozwiązania: https://medium.com/@mailshine/spring-boot-measure-execution-time-using-spring-aop-and-aspectj-4590d7bd6bb2
Zakładam, że jest to związane z tym, że w encji Test jest kilka pól oznaczonych adnotacją:
@ManyToOne(fetch = FetchType.LAZY)
i za każdym razem w pętli jest strzał do bazy gdy chce wyciągną dane pola i przez to metoda działa tak wolno.
Nie wiem niestety jak to potwierdzić.