Patrząc na listę procedur przechowywanych, których wykonanie zajmuje dużo czasu, wyróżnia się jako powodująca najwięcej oczekiwania. Jednak większość tego oczekiwania (81%) to ASYNC_NETWORK_IO i wiem dlaczego: procedura przechowywana przesyła około 400 MB informacji.
W dokumentacji stwierdza, że przyczyną ASYNC_NETWORK_IO jest to, że klient nie jest w stanie nadążyć za zalewem danych i to prawdopodobnie prawda. Nie jestem pewien, jak sprawić, by klient nadążył, ponieważ wystarczy wywołać procedurę przechowywaną za pośrednictwem ADO.NET, a następnie po prostu przetwarza zestaw danych.
Biorąc pod uwagę te informacje, czy powinienem martwić się typem oczekiwania ASYNC_NETWORK_IO na tę procedurę? Czy to rzeczywiście wpływa na wydajność serwera?
Dodatkowe informacje:
- Korzystam z dodatku Service Pack 2 dla programu SQL Server 2005.
- Aplikacja kliencka znajduje się w tym samym pudełku co SQL Server (wiem, wiem ... ale nic nie mogę na to poradzić).