Eu tenho um aplicativo mal escrito executando um SELECT *, resultando em um conjunto de resultados de 2 MB a cada poucos segundos. Eu não posso corrigir isso. Estou confuso, porém, pela conexão encontrando esperas ASYNC_NETWORK_IO. O aplicativo é local para o servidor de banco de dados.
Verifiquei que o session_id em dm_exec_connections é 'Memória compartilhada'. O client_net_address é 'máquina local'.
Alguém já experimentou isso antes? Ou capaz de me explicar por que isso está acontecendo?
Obrigado!
ASYNC_NETWORK_IO também acontece quando o aplicativo NÃO está lendo os dados rápido o suficiente do SQL Server. Observe que este NÃO é um problema do SQL Server, mas é um problema do aplicativo. Verifique se o aplicativo está lendo os dados como um conjunto em vez de linha por linha.
Mesmo que o aplicativo seja local, a comunicação acontecerá usando os protocolos de rede. Portanto, a transferência de dados mais lenta ainda aparecerá como ASYNC_NETWORK_IO, mesmo na máquina local.