Apenas curioso para verificar a sanidade de um problema. . .
Estou tentando verificar se um problema de desempenho experimentado pelos usuários é resultado do aplicativo, do servidor em que ele se encontra ou do SQL Server.
Olhando para o perfmon, posso ver uma média muito alta. Fila de Gravação de Disco. Olhando para o SQL, ASYNC_IO_COMPLETION e OLEDB são apresentados como os tipos de espera mais proeminentes. Isso me sugere que o SQL não é o fator definidor do baixo desempenho.
A presença de tipos de espera CXPACKET era alta, acredito que seja o resultado do paralelismo ativado e da alta fragmentação dos índices subjacentes juntamente com estatísticas desatualizadas.
O que os outros pensam? Que outras medidas posso tomar para provar (ou refutar) minha teoria de que o disco está lento.
Obrigado !
Há algumas perguntas diferentes aqui:
P: "Ao observar o perfmon, vejo uma fila média de gravação de disco muito alta."
Esse contador Perfmon não é mais relevante para o SQL Server. O SQL Server agrupa as operações de E/S em lotes e é normal ver grandes saltos aqui. Em vez disso, verifique os contadores de Avg Disk Sec/Read e seg/Write. Isso informa a rapidez com que o armazenamento está respondendo às suas solicitações. A desvantagem é que é apenas no nível da unidade (volume, ponto de montagem). Para obter estatísticas de E/S para arquivos específicos, consulte sys.dm_io_virtual_file_stats. David Pless tem uma ótima consulta aqui:
Link
P: "Olhando para SQL, ASYNC_IO_COMPLETION e OLEDB são apresentados como os tipos de espera mais proeminentes. Isso me sugere que SQL não é o fator que define o baixo desempenho."
ASYNC_IO_COMPLETION geralmente são gravações de arquivos de dados que ocorrem em segundo plano, de forma assíncrona. Quando você insere/atualiza/exclui coisas, o SQL Server precisa obter os dados no arquivo de log imediatamente - isso é o que o WRITELOG espera. Ele altera as páginas de dados na memória e, em seguida, elas são armazenadas em cache até mais tarde. As esperas ASYNC_IO_COMPLETION não estão atrasando os usuários finais. Isso pode indicar um desempenho lento da unidade para gravações de arquivos de dados, mas isso é um gargalo do sistema, não um gargalo voltado para o usuário final.
Na minha experiência, o OLEDB geralmente é causado por ferramentas de monitoramento de desempenho, como Spotlight, SQL Sentry, Idera SQL DM, etc., que estão executando rastreamentos e capturando dados de desempenho pela rede.
P: O que os outros pensam? Que outras medidas posso tomar para provar (ou refutar) minha teoria de que o disco está lento.
Eu tenho um vídeo sobre como fazer isso aqui:
http://www.brentozar.com/archive/2011/08/how-prove-its-san-problem-webcast-video/
Breve história - IO provavelmente não é o seu maior problema com base no que você descreveu aqui.