Dado um certo tipo de espera, como você descobre quais consultas estão causando essas esperas com segurança em um SQL 2008 R2 Server de produção?
Neste caso particular, estou me perguntando async_network_io
.
Dado um certo tipo de espera, como você descobre quais consultas estão causando essas esperas com segurança em um SQL 2008 R2 Server de produção?
Neste caso particular, estou me perguntando async_network_io
.
Minha maneira favorita de verificar isso é usar o excelente procedimento armazenado sp_WhoIsActive de Adam Machanic. Aqui está um vídeo sobre como usá-lo e um link para baixar o código:
http://www.brentozar.com/archive/2010/09/sql-server-dba-scripts-how-to-find-slow-sql-server-queries/
O problema é que você deve executá-lo periodicamente para verificar os resultados. Se você deseja que esses dados sejam coletados para você periodicamente, confira o tutorial de Kendra Little sobre a captura de resultados sp_WhoIsActive em uma tabela:
http://www.littlekendra.com/2011/02/01/whoisactive/
Por fim, se você deseja que algo seja acionado sempre que uma consulta espera por async_network_io, você pode usar uma nova ferramenta chamada Extended Events. É como pontos de depuração dentro do mecanismo do SQL Server, onde você pode fazer a mágica acontecer. Francamente, é um pouco doloroso de usar agora em 2008.
'async_wait_io' não é um tipo de espera. Possíveis tipos de espera ASYNC% são:
Alguns bons links para tipos de espera:
Minha consulta para encontrar as esperas atuais: