Monitoramento SQL Server

Propaganda
MONITORAMENTO SQL
SERVER
Lílian Simão Oliveira
Ferramentas que auxiliam o
monitoramento



O SQL Server Management Studio fornece várias
ferramentas para auxiliar o processo de desempenho
de aplicação. As consultas e os procedimentos
armazenados podem ser desenvolvidos e testados
usando o Query Editor integrado, que substitui o SQL
Server Query Analyzer.
Mais análises podem ser feitas usando o SQL Server
Profiler.
As recomendações de ajuste de banco de dados são
fornecidas por uma terceira ferramenta, o Database
Tuning Advisor.
Query Editor


Fornece uma interface gráfica com o usuário
simples para executar consultas SQL e ver os
resultados.
Oferece, também, uma representação gráfica do
showplan, as etapas escolhidas pelo otimizador
para a execução das consultas.
Query Editor

Um administrador pode usar para:
 Analisar
consultas: O query editor pode mostrar um
plano de execução gráfico ou textual para qualquer
consulta, bem como exibir estatísticas referentes ao
tempo e recursos necessários para executar qualquer
consulta
 Formatar consultas SQL
 Usar modelos para procedimentos armazenados,
funções e instruções SQL básicas
SQL Profiler



É um utilitário gráfico que permite monitorar e
registrar atividades de BD do SQL Server.
Pode exibir todas as atividades do servidor em
tempo real, ou pode criar filtros que focalizam as
ações de determinados usuários, aplicações ou tipos
de comandos.
Pode exibir dados de desempenho indicando o
tempo que a consulta levou para ser executada,
quanta CPU e E/S foram necessárias e o plano de
execução que a consulta usou.
SQL Profiler


Permite monitorar cada instrução executada como
parte de um procedimento armazenado, cada
operação de modificação de dados, cada bloqueio
adquirido ou liberado, ou cada corrência de um
arquivo de B.D. crescendo automaticamente.
O SQL Server divide a funcionalidade de
rastreamento em 2 componentes:
 Do
cliente – o SQL Profile suporta esse rastreamento
 Do servidor – a ferramenta de rastreamento SQL
SQL Profiler
A Figura acima mostra uma sessão do profiler com o banco de dados usado no cluster
do asp.net. Ao selecionarmos um item podemos ver também o texto completo, como foi
feito para a stored procedure cs_forums_Post. Há colunas adicionais para CPU, Reads,
Writes e Duration.
Query Analyzer

Resultados do Query Analyzer
Query Analyzer


Após obter a habilidade básica para examinar e
extrair profiles de banco de dados, deve-se saber o
que acontece a seguir.
O próximo passo é examinar as consultas com o Query
Analyzer, outra ferramenta útil para qualquer
desenvolvedor que trabalha com o SQL Server. Assim
como o Profiler é útil para obter as 50,000 visões
básicas do sistema, o Query Analyzer é o microscópio
para analisar os detalhes. Com o Query Analyzer,
podemos executar consultas e stored procedures e
obter uma exibição visual do plano de execução do
SQL Server.
Query Analyzer



Da mesma forma que o Profiler, o Query Analyzer é achado na
pasta SQL Server no menu All Program. Também, será necessário
completar o Connect para o diálogo SQL Server. Uma vez
conectado, podemos passar para o nosso banco de dados,
digitando o seguinte:
use [databasename] A seguir, clicamos no botão play na barra de
menu (ou realçamos o texto e pressionamos F5). Qualquer opção
executará o SQL realçado.
Em Profiler identificamos que a stored procedure cs_Sections_Get
está lendo um volume extraordinariamente grande de dados acima de 11,000 leituras! Podemos copiar o SQL trace do Profiler
para o Query Analyzer e veremos então exatamente o que aquela
consulta em particular está fazendo.
Analisando uma consulta

Para rodar a consulta, primeiro colamos o conteúdo
em Query Analyzer e a seguir selecionamos Query
| Show Execution Plan na barra de ferramentas. Em
seguida, realçamos o SQL e pressionamos F5 para
executá-lo..
Analisando uma consulta




Logo abaixo da consulta SQL que foi executada encontramos a grade de resultados que
mostra o que foi retornado pela consulta. Neste caso foram retornados dois resultsets. O
primeiro é uma lista de Sections (forums) e o segundo é um conjunto de permissões. O
Community Server usa um sistema de permissões role-based para controlar o que os usuários
podem ou não fazer dentro do sistema. Sempre que uma lista de Sections é recuperada, o
sistema também refresca a lista de permissões para as mesmas.
No canto inferior direito do Query Analyzer vemos o texto: "5430 rows". Isto indica o número
total de linhas retornadas. Neste procedimento, havia uma falha na lógica de permissões que
faria o sistema retornar uma lista equivalente à soma do total dos roles multiplicada pelo
total de sections. No caso de forums.asp.net, há 29 roles únicos e 181 sections, o que equivale
a 5,249 linhas. Somando as 181 linhas retornadas pelo primeiro resultset teremos um total
geral de 5,430 linhas retornadas.
Obviamente são muitas linhas. Na realidade, usando o Profiler e o Query Analyzer, esta
Query particular foi otimizada para retornar menos de 250 registros - reduzindo a duração
total para menos de 100 ms.
Além de rodar consultas, o Query Analyzer nos permite analisá-las. Verificamos que a
exibição do plano de execução foi habilitada antes de executar o SQL. O plano provê um
diagrama visual de como SQL Server está executando a consulta, que índices utiliza e outros
dados que podem nos ajudar a otimizar índices ou outros dados requeridos pelo SQL Server
para aumentar o desempenho das consultas.

A Figura ao lado mostra
cada consulta executada, o
plano de execução, os
índices usados, os joins e o
volume de dados retornado
em cada operação. Até
mesmo as setas entre cada
item têm significado: a
espessura da seta é uma
indicação visual de quantos
dados foram retornados
pela operação; isto é, uma
consulta mal ajustada, teria
muitas setas grossas,
indicando operações que
estão retornando
provavelmente muitos
dados.


O Application Center Test, o SQL Server Profiler e o SQL
Server Query Analyzer são algumas das ferramentas mais
poderosas para fazer o ajuste fino do desempenho de
aplicações ASP.NET ou SQL Server. Estas ferramentas não só
deveriam fazer parte do "cinto de ferramenta" dos
desenvolvedores, como também deveriam ser usadas
habitualmente para inspecionar o desempenho global das
aplicações. Freqüentemente os desenvolvedores estão
preocupados em otimizar rotinas dentro do código, no
entanto estariam utilizando melhor seu tempo, dedicando-se
a eliminar ou otimizar comunicações cross-process, tais como
chamadas a banco de dados.
Fonte: http://msdn.microsoft.com/ptbr/library/cc580638.aspx
SQL Monitor e Performace Monitor
Fonte: http://sqlbrasil.blogspot.com/2010/02/videoaula-utilizando-sql-profiler-e-o.html
Download