Arquivo

Archive for the ‘Análise de desempenho’ Category

MSSQL Blocks

Se seu servidor está usando pouca CPU e pouco disco e mesmo assim está chovendo de usuário reclamando de mau desempenho, é provável que seu problema seja de contenção de bloqueios (locks).
 
Pela interface do Management Studio (Activity Monitor) não fica muito óbvio perceber cadeias de espera por bloqueios. O comano sp_who2 ‘active’ pode ajudar mas também não é tão prático e direto para identificar exatamente os processos que estão na fila de espera por bloqueios.
 
Em geral, quando se chega nessa situação problemática de desempenho por conta de bloqueios, muita gente sai distribuindo o bom e velho NOLOCK pra todo lado, que despreza os bloqueios e lê o dado "sujo", independente de estar sendo manipulado naquele momento por alguma transação em andamento. Essa prática, apesar de normalmente resolver o problema de desempenho, não é indicada quando se necessita manter integridade transacional dos dados sendo manipulados durante um conjunto de operações que compõem transações.
 
Um russo desenvolveu um interessante utilitário para mostrar de maneira objetiva os problemas com bloqueios. E deixou disponível para download gratuito:
 

Dissecando dados do perfmon

Vale a pena conferir o Performance Analysis of Logs (PAL), uma ferramenta desenvolvida por gente da Microsoft que lê um ou mais arquivos gerados pelo System Monitor (perfmon) e mostra uma série de relatórios automatizados com conclusões "pré-mastigadas" sobre gargalos encontrados:
 
 
O PAL possui código-fonte disponível para download, e tem números animadores de gente usando e atualizando o mesmo. A última versão foi colocada segunda-feira dessa semana (28/07). Como pré-requisito, é necessário ter o Windows XP SP2, Vista, Server 2003 ou Server 2008. Deve-se instalar também o .NET Framework 2.0, o Log Parser e o OWC 11, todos disponíveis para download gratuito no Microsoft Download Center.