Esaminando l'elenco delle procedure memorizzate che richiedono molto tempo per essere eseguite, ci si distingue come causa della maggior attesa. Tuttavia, la maggior parte dell'attesa (81%) è ASYNC_NETWORK_IO e so perché: la procedura memorizzata trasferisce circa 400 MB di informazioni.
Nella documentazione, afferma che la causa di ASYNC_NETWORK_IO è che il client non può tenere il passo con il flusso di dati e questo è probabilmente vero. Non sono sicuro di come tenere il client al passo con tutto ciò che fa è chiamare la procedura memorizzata tramite un ADO.NET e quindi elabora solo il set di dati.
Quindi, date queste informazioni, dovrei preoccuparmi del tipo di attesa ASYNC_NETWORK_IO per questa procedura? Ha effettivamente un effetto sulle prestazioni del server?
Ulteriori informazioni:
- Sono sul service pack 2 di SQL Server 2005.
- L'app client si trova sulla stessa scatola di SQL Server (lo so, lo so ... ma non posso farci nulla).