VEJAM

CURSO PROFISSIONALIZANTES

Perfmon e SQL Server

Nenhum comentário

O Perfmon do Windows possui muitos contadores de SQL, hoje veremos 5 que ajudam muito em troubleshooting de performance.

Ao fazer uma análise de lentidão é muito importante termos dados armazenados para podermos identificar com maior clareza o que realmente está acontecendo. Portanto, sugiro utilizar sempre o Performance Monitor do Windows para armazenarmos estes dados continuamente. Assim, quando houver um problema de lentidão, será possível comparar estes dados com os dados anteriores ao problema.

Além dos contadores básicos do Windows, podemos adicionar contadores do SQL que com certeza irão nos ajudar muito. Vamos entendê-los:

Page Life Expectancy

Com este indicador podemos observar quanto tempo as páginas ficam em buffer de memória. Um baixo valor, significa que a página teve que ser substituída por outra página utilizada recentemente, ou seja, não havia espaço na memória suficiente para armazenar ambas. Desta forma, podemos concluir que baixos valores indicam gargalo de memória ou memória insuficiente para o SQL Server.

Buffer cache hit ratio

Significa quantas vezes o SQL precisou de uma informação e já tinha pronta em sua memória, ou seja, não foi necessário buscar em disco. Valores em torno de 90% são ideais para a maioria dos ambientes mas pode variar de acordo com as particularidades do seu ambiente. Quanto maior, melhor.

Batch Requests/sec

Quantos comandos são executados por segundo. Dentro de uma query podemos ter vários comandos (select, insert, update, alter database, sum, counter, etc) e este importante contador mostra quantos destes comandos estão sendo executados por segundo. Quando temos uma query mal formatada, este número cai drasticamente.

Page Splits/sec

Tendo em vista que os dados são armazenados em blocos chamados páginas, quando estas estão fragmentadas o número de salto entre as páginas para conseguir uma informação aumenta consideravelmente. Consequentemente serão necessárias mais operações de I/O, ou seja, um número menor é sinal de que temos as páginas cheias de dados ou que os dados
solicitados estão dentro da mesma página. Como exemplo, se dermos um select em uma tabela e os registros estiverem dentro da mesma página, iremos saltar 0 vezes. Se os registros estiverem metade em uma página e metade em outra, iremos saltar 1 vez.

Compilations/sec

Mostra quantas compilações foram executadas por segundo. O SQL quando recebe uma query faz um trabalho de conversão para um plano de execução chamado de "Execution Plan". Este execution plan mostra quais tabelas verificar, se fará um scan em toda a tabela ou se usará um índice, como vai acessar o dado, etc. Aqui o valor depende pois muitas compilações é sinal de que o cache de execution plans não está sendo eficiente, porém, um servidor com um ótimo hardware é capaz de fazer mais compilações por segundo que um servidor com poucos recursos de hardware.

Lazy Writer/sec

O Lazy Writer é o mecanismo responsável por remover páginas não utilizadas do Data Cache do SQL para dar lugar a novas páginas solicitadas, quando há algum tipo de pressão de memória. Suponhamos que seu SQL já atingiu seu Max Server Memory e você executou uma query solicitando registros que não estão no Data Cache. O Lazy Writer faz uma varredura no Data Cache utilizando um algorítimo LRU-K, procurando por páginas cuja pontuação de utilização chegou a 0. As páginas são então removidas e as demais páginas não utilizadas mas que ainda não estão com 0 são ajustadas tendo sua pontuação reduzida, até que em outra operação do Lazy Writer acabam também chegando a zero e em seguida removidas. Portanto, é importante monitorar este contador para saber se a quantidade de Lazy Writer por segundo aumentou, diminuiu ou até mesmo durante uma operação específica ou momentos de pico.

Nenhum comentário :

Postar um comentário