Mamy procedurę przechowywaną, która jest wywoływana około 300 000 razy dziennie przez 15 użytkowników w ciągu dnia. Przelałem każdą linię i jest tak skuteczny, jak tylko mogę.Serwer SQL Operacja "Wylogowanie kontroli" zajmuje dużo czasu.
Procedura przechowywana jest dostępna za pośrednictwem strony ASP.NET w wersji 4.0 ze starej aplikacji VB6 na podstawowym serwerze Winterms.
Kiedy patrzę w pliku śledzenia SQL, widzę następujące:
- Exec sp_reset_connection (Korzystanie z puli połączeń)
- Audit Login
- Wykonanie procedury przechowywanej
- Audit Logout
Widzę w kroku 4, odczyt i zapis są wysokie, co ma sens, ponieważ jest to nagromadzenie połączenie jest ponownie wykorzystywane w puli.
Co mnie martwi, to jak długo to trwa, czasami na 50 ms, a innym razem 400ms, to jest całkowicie losowe. Z dokumentów, które przeczytałem "Wylogowanie audytu", jest cały czas trwania dla wszystkich trzech kroków. Ale kroki 1-3 były bardzo szybkie, jak 0-5ms. Dlaczego czas "Wylogowania audytu" byłby tak długi?