Za mało informacji, żeby ktoś Ci coś konkretnego doradził.
Przy tego typu problemach staram się:
a) zobaczyć co się dzieje z perspektywy systemu (CPU/dyski/sieć/pamięć/inne zasoby np. cache'a, sockety, uchwyty do plików etc.)
b) z perspektywy użytkownika zrozumieć co się dzieje i dlaczego ("aplikacja nie odpowiada, chyba się zawiesiła" - spekulacja użytkownika) - pomocne są logi aplikacji, narzędzia pod konkretną platformę (w przypadku windows będzie to np. process monitor, perfmon, resmon)
https://learn.microsoft.com/pl-pl/sysinternals/downloads/procmon
https://learn.microsoft.com/pl-pl/windows-server/administration/windows-commands/perfmon
https://techcommunity.microsoft.com/t5/ask-the-performance-team/using-resource-monitor-to-troubleshoot-windows-performance/ba-p/375008
Może się okazać, że aplikacja "wisi" na oczekiwaniu na odpowiedź bazy danych -> przepinasz się na analizę bazy danych (co robi baza, że jej tyle czasu to zajmuje -> użycie narzędzi dedykowanych do bazy albo śledzenie procesów i tam widzisz, że jest sporo np. I/O albo CPU -> który komponent i dlaczego konsumuje tyle zasobów -> zapytanie, backup, etc.)
Masz zapytanie -> dużo I/O ? A które obiekty czyta, na jakich dyskach są te obiekty, czy mogłoby czytać mniej (inny plan zapytania?), czy warto cachować I/O, czy są jakieś konkurujące workloady (np. czy warto rozdzielić obiekty workloadów na osobne dyski itp.)
Jeśli podejrzewasz, HyperV to odpal perfmona i zacznij się przyglądać counterom od HyperV. Czy po uruchomieniu funkcjonalności, któryś nagle leci mocno w górę itd.
Bez przeanalizowanie i zrozumienia, idziesz w antywzorce rozwiązywania problemów ("zmień to, i jeszcze tamo, ja bym zmienił tamo, kolega mi mówił, że słyszał, że jak nacisnęli zielony guzik to ruszyło z kopyta").