Você está na página 1de 19

Dez dicas para otimizar o

desempenho do SQL Server

Escrito por Patrick OKeefe e Richard Douglas

Resumo Introduo
A otimizao de desempenho no SQL Server pode ser um Considere suas metas de ajuste.
desafio. Uma vasta gama de informaes est disponvel sobre Todos ns queremos obter o valor mximo de nossas
a forma de abordar os problemas de desempenho em geral. No implementaes do SQL Server. Aumentar a eficincia de seus
entanto, no h muita informao detalhada sobre problemas servidores de banco de dados libera recursos do sistema para
especficos e ainda menos informaes sobre como aplicar esse outras tarefas, tais como relatrios de negcios ou consultas ad
conhecimento especfico ao seu prprio ambiente. hoc. Para obter o mximo do investimento em hardware de sua
organizao, voc precisa garantir que a carga de trabalho do
Este artigo oferece 10 dicas para otimizar o desempenho do SQL ou aplicao executada nos servidores do banco de dados
SQL Server, com SQL Server 2008 e 2012 em mente. No h esteja em execuo da forma mais rpida e eficiente possvel.
listas definitivas das dicas mais importantes, mas voc no
errar comeando por aqui. Mas o seu ajuste depende de suas metas. Voc pode estar se
perguntando: "Ser que estou obtendo a melhor eficincia da
Como um DBA, voc, sem dvida, tem seu prprio ponto minha implantao do SQL Server?". Mas algum pode estar
de vista, assim como suas prprias dicas, truques e scripts se perguntando: "Minha aplicao se ajustar escala?". Aqui
favoritos de otimizao. Por que no se juntar discusso sobre esto as principais formas de ajustar um sistema:
SQLServerPedia? Ajustar para atender s metas do contrato de nvel de servio (SLA)
ou dos indicadores chave de desempenho (KPI)
Ajustar para aumentar a eficincia, liberando assim os recursos
para outras finalidades
Ajustar para garantir a escalabilidade, ajudando assim a manter
SLAs ou KPIs no futuro
Lembre-se de que o ajuste um processo Dica n 10. A metodologia de criao
contnuo, no uma correo nica. de linha de base e referncia de
A otimizao de desempenho um desempenho ajuda voc a detectar
processo contnuo. Por exemplo, ao os problemas.
ajustar para metas de SLA, ser possvel ter Viso geral do processo de criao
"concludo". No entanto, se voc estiver de linha de base e referncia de
ajustando para aumentar a eficincia ou desempenho A Figura 1 ilustra as
garantir a escalabilidade, seu trabalho etapas no processo de criao de linha
nunca ser realmente concludo; esse tipo de base. As sees a seguir explicaro
de ajuste deve ser continuado at que o as principais etapas no processo.
desempenho esteja "bom o suficiente".
No futuro, quando o desempenho da
aplicao no for mais bom o suficiente,
Trabalhe para o ciclo de ajuste dever ser executado
novamente.
aumentar a
"Boa o suficiente" geralmente tem a ver
escalabilidade e com os imperativos de negcios, como
a eficincia de SLAs ou requisitos de taxa de transferncia
do sistema. Alm desses requisitos, voc
todos os servidores deve estar motivado para aumentar a
escalabilidade e a eficincia de todos os
de banco de servidores do banco de dados, mesmo
dados, mesmo se que os requisitos de negcios estejam
sendo cumpridos.
os requisitos de
Sobre este documento
negcios estiverem A otimizao do desempenho no SQL
sendo cumpridos. Server um desafio. H uma variedade
de informaes generalizadas sobre
vrios pontos de dados, por exemplo,
contadores de desempenho e objetos de
gerenciamento dinmico (DMOs), mas h
muito pouca informao sobre o que fazer
com esses dados e como interpret-los.
Este artigo descreve 10 dicas importantes
que sero teis nas trincheiras, permitindo
que voc transforme alguns desses dados
em informaes acionveis.

Figura 1. O
 processo de criao de
linha de base

2
Antes de comear a fazer alteraes, crie Estabelea a norma.
um registro do desempenho atual do Depois de determinar o que deseja
sistema. Ao ajustar e otimizar, a maioria alcanar, ento voc precisa decidir
de ns ficar tentada a ir diretamente como vai medir o sucesso. Quais so
para os ajustes. Alguma vez voc j pegou os contadores de sistema operacional,
seu carro no mecnico e pensou que ele contadores do SQL Server, medidas
estava funcionando pior do que antes? de recursos e outros pontos de dados
Voc quer reclamar, mas simplesmente que proporcionaro o discernimento
no tem certeza. Voc tambm pode se necessrio?
perguntar se a causa do problema que
acha existir agora algo que o mecnico Depois de ter essa lista, voc precisar
fez ou algo que aconteceu depois. estabelecer sua linha de base, ou o
Infelizmente, o desempenho do banco de desempenho tpico de seu sistema,
dados pode sofrer os mesmos problemas. conforme os critrios escolhidos. Voc A referncia de
precisa coletar dados suficientes durante
Depois de ler este artigo, voc estar um perodo de tempo suficientemente desempenho ajuda
cheio de ideias e vai querer implementar
sua estratgia de criao de linha de
longo para dar uma amostra
representativa do desempenho tpico
a identificar um
base e referncia de desempenho do sistema. Assim que tiver os dados, comportamento
imediatamente. A primeira etapa que voc pode calcular a mdia dos valores
voc precisa realizar no a mais durante o perodo para estabelecer sua anormal, porque
emocionante, mas certamente uma das
mais importantes: hora de estabelecer
primeira linha de base. Depois de fazer
modificaes no sistema, voc ter
voc tem uma boa
como seu ambiente atende aos critrios uma nova referncia de desempenho e indicao do que
que voc pretende mudar. a comparar com a original para poder
medir objetivamente o efeito de suas um comportamento
Determine suas metas. alteraes. normal.
Antes de fazer qualquer coisa em seu
sistema, decida o que voc deseja No monitore apenas os valores
alcanar. H aspectos de seu SLA que mdios; acompanhe tambm o desvio
precisam ser tratados com respeito ao da norma. No entanto, importante ter
desempenho, consumo de recursos ou cuidado com as mdias. No mnimo,
capacidade? Voc est resolvendo um calcule o desvio padro de cada
problema atual em produo? Houve contador para ter uma indicao da
queixas com relao ao tempo do variao ao longo do tempo. Considere
recurso? Estabelea algumas metas claras. um alpinista que soube que o dimetro
mdio da corda de 1cm. O alpinista
A maioria de ns tem muitos bancos salta com confiana para o lado.
de dados e instncias para cuidar. Para Elebalana vrias centenas de metros
aumentar o valor de nossos esforos, sobre as rochas afiadas e sorri, satisfeito.
precisamos pensar com cuidado no que Em seguida, ele descobre que a seo
exigido de um determinado sistema de mais grossa da corda de 2cm e a mais
modo que tenha um bom desempenho fina de 0,1cm. Ops!
e atenda s expectativas dos usurios.
Se voc exagerar na anlise e no ajuste, Se voc no estiver familiarizado com
poder descobrir que uma quantidade o desvio padro, consulte um livro de
desproporcional de tempo gasta estatsticas para iniciantes. Voc no
em sistemas de baixa prioridade, em precisa saber tudo, mas ajuda saber o
detrimento dos principais sistemas de bsico.
produo. Seja claro sobre exatamente o
que deseja alcanar com seus esforos A mensagem principal aqui no apenas
de medio e ajuste. Priorize-os e, acompanhar as mdias, mas tambm
idealmente, obtenha adeso e contratos acompanhar o desvio da norma (meio).
de um patrocinador de negcios. Decida o que essa norma deve ser (isso
frequentemente encontrado no SLA).

3
Sua misso no obter o mximo no mesmo lugar que o banco de dados
desempenho possvel, e sim conseguir sendo monitorado.
o melhor ajuste possvel para suas
metas de desempenho e, em seguida, Limite o nmero de alteraes feitas ao
limitar o desvio dessas metas o mximo mesmo tempo.
possvel. Tudo mais representa tempo e Tente limitar o nmero de alteraes
esforo desperdiados e tambm pode feitas entre cada referncia de
apontar para uma subutilizao dos desempenho. Construa suas
recursos de infraestrutura. modificaes para testar uma hiptese
especfica. Isso permitir que voc inclua
Qual o volume de dados necessrio ou exclua de forma meticulosa cada
para uma linha de base? A quantidade candidato a melhoria. Ao aprimorar uma
de dados necessrios para estabelecer soluo, voc entender exatamente
uma linha de base depende de como por que est vendo a mudana no
Sua misso no a carga varia ao longo do tempo. comportamento, e isso muitas vezes
obter o mximo Converse com os administradores
de sistema, usurios finais e
revela uma srie de opes adicionais de
possvel melhoria.
desempenho administradores de aplicaes. Eles
geralmente tm uma boa noo de
possvel; conseguir quais so os padres de uso. Voc deve
Anlise dos dados
Depois de fazer alteraes em seu
o melhor ajuste reunir dados suficientes para cobrir
perodos fora de pico, mdios e de pico.
sistema, voc vai querer determinar
se elas tiveram o efeito desejado. Para
possvel para importante medir a quantidade que conseguir isso, repita as medidas tomadas
varia de carga e com que frequncia.
suas metas de Os sistemas com padres previsveis
para a linha de base original por meio
de uma escala de tempo similarmente
desempenho e, em exigiro menos dados. Quanto maior a
variao, menor o intervalo de medio
representativa. Voc pode ento
comparar as duas linhas de base para:
seguida, limitar o e maior o tempo que voc precisar Determinar se suas alteraes causaram

para medir e desenvolver uma linha de
desvio dessas metas base confivel. Para ir um pouco mais
o efeito desejado Quando voc ajustar
uma configurao, otimizar um ndice
o mximo possvel. alm em nossa analogia do alpinista,
quanto maior o comprimento de corda
ou uma mudana no cdigo SQL, a linha
de base permitir dizer se essa mudana
que voc examinar, melhor a chance teve o efeito desejado. Se voc receber
de detectar as variaes. A criticidade uma reclamao sobre um desempenho
do sistema e o impacto do seu fracasso mais lento, poder dizer com certeza se
tambm afetaro a quantidade de a instruo precisa sob a perspectiva do
anlise a que ele deve ser submetido e a banco de dados.
confiabilidade que a amostra deve ter. O erro mais frequente que a maioria dos
DBAs juniores comete tirar concluses
Armazenamento dos dados precipitadas. Muitas vezes, voc ver algum
Quanto mais parmetros voc pular de alegria ao observar um aumento
monitorar e quanto menor a frequncia, imediato no desempenho depois de fazer
maior o conjunto de dados que voc uma ou mais alteraes. Eles implantam na
vai coletar. Pode parecer bvio, mas produo e se apressam em enviar e-mails
voc precisa considerar a capacidade informando que o problema foi resolvido. Mas
que ser necessria para armazenar as comemoraes podero ter curta durao
seus dados de medio. Quando quando os mesmos problemas ressurgem
voc tiver alguns dados, ser bastante algum tempo depois ou algum efeito colateral
simples extrapolar a medida em que desconhecido provocar outro problema.
este repositrio vai crescer ao longo do Muitas vezes, isso pode resultar em um estado
tempo. Se voc monitorar durante um que menos desejvel do que o original.
perodo prolongado, considere agregar Quando achar ter encontrado a resposta para
dados histricos em intervalos para um problema, teste-a e faa uma referncia de
evitar que o repositrio aumente muito. desempenho dos resultados na linha de base.
Esta a nica maneira confivel de saber com
Por motivos de desempenho, seu certeza que voc progrediu.
repositrio de medio no deve residir

4
Determinar se uma alterao apresentou Repita o processo de criao de linha de
algum efeito colateral inesperado base quantas vezes forem necessrias.
Uma linha de base tambm permite ver O bom ajuste um processo iterativo
objetivamente se uma mudana afetou um e cientfico. As dicas apresentadas
contador ou medida que voc no esperava neste documento fornecem um bom
ser afetado. ponto de partida, mas elas so apenas
Antecipar os problemas antes que eles isso: um ponto de partida. O ajuste de
aconteam Ao usar uma linha de base, voc desempenho altamente personalizado
pode estabelecer normas de desempenho e regido pelo design, composio e uso
precisas em condies de carga tpicas. Isto de cada sistema individual.
lhe permitir prever se e quando voc ter
problemas no futuro, com base em como A metodologia de criao de linha de
o consumo de recursos est tendendo hoje base e referncia de desempenho o
ou nas cargas de trabalho projetadas para elemento central do bom e confivel A quantidade de
cenrios futuros. Por exemplo, voc executa ajuste de desempenho. Ela fornece o
o planejamento de capacidade: ao extrapolar mapa, uma referncia e os pontos de dados necessrios
o consumo normal de recursos atuais por
usurio conectado, ser possvel prever quando
interesse necessrios para descobrirmos
onde precisamos ir e como chegar
para estabelecer
seus sistemas tero gargalos de conexo do l, para nos ajudar a garantir que no uma linha de base
usurio. nos perderemos no caminho. Uma
Solucionar problemas de forma mais eficaz abordagem estruturada nos permite criar depende de como a
J passou vrios dias e noites combatendo
um problema de desempenho com seu banco
um desempenho confivel e consistente
em todo nosso portflio do banco de
carga varia ao longo
de dados s para descobrir que na verdade dados. do tempo.
no tinha nada a ver com o banco de dados
em si? Estabelecer uma linha de base torna Dica n 9. Os contadores de
muito mais fcil eliminar a instncia de banco desempenho fornecem informaes
de dados e apontar o culpado. Por exemplo, rpidas e teis sobre as operaes
suponha que o consumo de memria, de atualmente em execuo.
repente, disparou. Voc percebe o nmero Motivos para monitorar os contadores
de conexes aumentando drasticamente e de desempenho
bem acima de sua linha de base. Uma ligao Uma pergunta muito comum relacionada
rpida para o administrador da aplicao otimizao de desempenho do
confirma que um novo mdulo foi implantado SQL Server : "Quais contadores
na loja virtual. No demora muito para eu devo monitorar?" Em termos de
provar que o novo desenvolvedor jnior est gerenciamento do SQL Server, h dois
escrevendo um cdigo que no libera as grandes motivos para monitorar os
conexes de banco de dados como deveria. contadores de desempenho:
Aposto que voc pode imaginar muitas outras Aumento da eficincia operacional
situaes como esta. Preveno de gargalos

Excluir as coisas que NO so responsveis Embora se sobreponham, esses dois


por um problema pode poupar uma grande motivos permitem que voc escolha
quantidade de tempo eliminando a confuso facilmente uma srie de pontos de dados
e proporcionando um foco sobre exatamente para monitorar.
o que est causando o problema. Existem
muitos exemplos em que podemos comparar
Monitorar contadores de desempenho
contadores do sistema aos contadores do
para aumentar a eficincia operacional
SQL Server para incluir ou excluir rapidamente
O monitoramento operacional verifica
o banco de dados de um problema. Depois
o uso geral de recursos. Ele ajuda a
que os suspeitos de costume forem
responder a perguntas, tais como:
descartados, voc poder comear a busca
O servidor est prestes a ficar sem
por desvios significativos na linha de base,
recursos, como CPU, espao em disco ou
coletar indicadores relacionados e analisar a
memria?
causa raiz.
Os arquivos de dados podem aumentar?
Os arquivos de dados de tamanho fixo tm
espao livre para dados?

5
Voc tambm pode usar os dados para Para responder s trs perguntas feitas
fins de tendncia. Um bom exemplo seria acima, voc deve analisar os seguintes
coletar os tamanhos de todos os arquivos contadores:
de dados para direcionar suas taxas de
crescimento e prever futuras necessidades
de recursos.

Medidor Permite a voc


Processor\%Processor Time Monitorar o consumo da CPU no servidor
LogicalDisk\Free MB Monitorar o espao livre no(s) disco(s)
MSSQL$Instance:Databases\DataFile(s) Size (KB) Direcionar o crescimento ao longo do tempo
Memory\Pages/sec Verificar a paginao, que uma boa indicao de
que os recursos de memria podem ser curtos
Limite o nmero Memory\Available MBytes Ver a quantidade de memria fsica disponvel para
uso do sistema
de alteraes
feitas entre cada Monitorar os contadores de desempenho Os principais subsistemas do SQL
para evitar gargalos Server, como o cache de buffer e
referncia de O monitoramento de gargalos se cache de planos esto ntegros?

desempenho, para concentra mais em questes relacionadas


ao desempenho. Os dados coletados
Existe conteno no banco de dados?

que possa avaliar ajudam a responder a perguntas, tais Para responder a essas perguntas,
como: analise os seguintes contadores:
meticulosamente Existe um gargalo da CPU?
os efeitos de cada Existe um gargalo de E/S?

mudana. Medidor Permite a voc


Processor\%Processor Time Monitorar o consumo da CPU permite que voc
verifique se h um gargalo no servidor (indicado pelo
alto uso sustentado).
Espera de sinal o tempo que um trabalhador gasta
Alta porcentagem de espera de sinal aguardando o tempo da CPU aps ter acabado de
esperar algo mais (como um bloqueio, uma trava ou
outro sinal de espera).
O tempo gasto esperando a CPU indicativo
de um gargalo da CPU.
A espera de sinal pode ser encontrada executando
DBCC SQLPERF(waitstats) no SQL Server 2000
ou consultando sys.dm_os_wait_stats no
SQLServer2005.
Verifique se h gargalos de disco: se o valor for
Disco fsico\mdia Tamanho da fila do disco
superior a 2, ento ser provvel que exista um
gargalo de disco.
MSSQL$Instance:Buffer Manager\Page Life Expectativa de vida da pgina o nmero de
Expectativa segundos que uma pgina permanece no cache do
buffer. Um nmero baixo indica que as pginas esto
sendo despejadas sem gastar muito tempo no cache,
o que reduz a eficcia do cache.
MSSQL$Instance:Plan Cache\Cache Hit Ratio Uma baixa taxa de acertos do cache de planos
significa que os planos no esto sendo reutilizados.
MSSQL$Instance:General Statistics\Processes Blocos longos indicam conteno de recursos.
Blocos

6
Dica n 8. Alterar as configuraes a memria mxima no apenas
do servidor pode proporcionar um adequado para instncias em um
ambiente mais estvel. cluster, mas tambm aquelas instncias
Alterar as configuraes dentro de um que compartilham recursos com
produto para torn-lo mais estvel qualquer outra aplicao. Se o uso de
pode parecer contraintuitivo, mas, memria do SQL Server for muito alto,
neste caso, realmente funciona. Como o sistema operacional poder cortar
um DBA, seu trabalho ser garantir agressivamente a quantidade de memria
um nvel consistente de desempenho que pode utilizar, a fim de permitir que
para seus usurios quando eles ele prprio ou outra sala de aplicaes
solicitam dados de suas aplicaes. funcione.
Sem alterar as configuraes descritas SQL Server 2008 No SQL Server 2008
no restante deste documento, voc R2 e anterior, a configurao de memria
pode experimentar cenrios que Mn. e Mx. restringe apenas a quantidade
de memria que o pool de buffers usa (mais
Sage aconselha
podem degradar o desempenho
de seus usurios, sem aviso prvio. especificamente, apenas alocaes de sobre como
pgina nica de 8KB). Isso significa que se
Essas opes podem ser facilmente
encontradas em sys. configurations, voc executasse processos fora do pool de
solucionar
que lista as configuraes no nvel do buffers (como procedimentos armazenados
estendidos, CLR ou outros componentes,
problemas em
servidor, disponveis juntamente com
informaes adicionais. O atributo como Integration Services, Reporting apenas trs
Services ou Analysis Services), voc
Is_Dynamic em sys.configurations
mostra se a instncia do SQL Server precisaria reduzir ainda mais esse valor.
palavras: "Eliminar
precisar ser reiniciada aps uma SQL Server 2012 O SQL Server 2012

muda um pouco as coisas quando h um
ou incriminar".
alterao da configurao. Para
fazer a alterao, voc chamaria gerenciador de memria central. Este
o procedimento sp_configure gerenciador de memria agora incorpora
armazenado com os parmetros alocaes de vrias pginas, como grandes
relevantes. pginas de dados e planos em cache que
so maiores do que 8KB. Este espao de
As configuraes de memria Mn. e memria agora tambm inclui algumas
Mx. podem garantir um determinado funcionalidades de CLR.
nvel de desempenho.
Suponhamos que temos um cluster Duas opes de servidor podem ajudar o
Ativo/Ativo (ou um nico host com desempenho indiretamente.
vrias instncias). Podemos fazer No h opes que auxiliam diretamente
algumas alteraes de configurao o desempenho, mas h duas opes que
que podem garantir que vamos cumprir podem ajudar de forma indireta.
nossos SLAs, no caso de um failover, Padro de compactao de back-up
em que ambas as instncias residem na Esta opo define que os backups sejam
mesma caixa fsica. compactados por padro. Embora isto
possa produzir ciclos extras de CPU
Neste cenrio, fazemos alteraes na durante a compactao, em geral, menos
configurao de memria Mn. e Mx. ciclos de CPU so usados em comparao
para garantir que o host fsico tenha a um back-up no compactado, pois
memria suficiente para lidar com menos dados so gravados no disco.
cada instncia sem precisar tentar Dependendo da sua arquitetura de E/S, a
constantemente cortar de forma configurao dessa opo tambm pode
agressiva o conjunto de trabalho do reduzir a conteno de E/S.
outro. Uma alterao semelhante na A segunda opo pode ou no ser
configurao pode ser feita para utilizar divulgada em uma dica futura no cache de
alguns processadores, a fim de garantir planos. Voc vai ter que esperar e ver se
um determinado nvel de desempenho. chegou nossa lista de top 10.
importante observar que configurar

7
Dica n 7. Encontre consultas de Diagnosticar um gargalo de
invasores no cache do plano. CPU No SQL Server, se voc
Depois de identificar um gargalo, identificou um gargalo de CPU, a
voc precisar encontrar a carga de primeira coisa que dever fazer
trabalho que est causando o gargalo. obter os principais consumidores
Isso muito mais fcil de fazer desde a de CPU no servidor. Esta uma
introduo de objetos de gerenciamento consulta muito simples em sys.
dinmico (DMOs) no SQL Server 2005. dm_exec_query_stats:
Usurios do SQL Server 2000 e anterior
tero de se contentar com o uso do
Profiler ou rastreamento (mais sobre isso
na Dica n 6).

Monitorar os SELECT TOP 50


qs.total_worker_time / execution_count AS avg_worker_time,
contadores de substring (st.text, (qs.statement_start_offset / 2) + 1,
( ( CASE qs.statement_end_offset WHEN -1
desempenho pode THEN datalength (st.text)

ajudar a aumentar

ELSE qs.statement_end_offset END
- qs.statement_start_offset)/ 2)+ 1)
a eficincia AS statement_text,
*
operacional e evitar FROM sys.dm_exec_query_stats AS qs

gargalos. CROSS APPLY sys.dm_exec_sql_text (qs.sql_handle) AS st


ORDER BY
avg_worker_time DESC

A parte realmente til dessa consulta Diagnosticar um gargalo de E/S A


sua habilidade de usar aplicao cruzada histria semelhante para um gargalo
e sys.dm_exec_sql_text para obter a de E/S:
instruo SQL para analis-la.

SELECT TOP 50
(total_logical_reads + total_logical_writes) AS total_logical_io,
(total_logical_reads / execution_count) AS avg_logical_reads,
(total_logical_writes / execution_count) AS avg_logical_writes,
(total_physical_reads / execution_count) AS avg_phys_reads,
substring (st.text,
(qs.statement_start_offset / 2) + 1,
((CASE qs.statement_end_offset WHEN -1
THEN datalength (st.text)
ELSE qs.statement_end_offset END
- qs.statement_start_offset)/ 2)+ 1)
AS statement_text,
*
FROM sys.dm_exec_query_stats AS qs
CROSS APPLY sys.dm_exec_sql_text (qs.sql_handle) AS st
ORDER BY total_logical_io DESC

8
Dica n 6. O SQL Profiler seu amigo. Como usar o SQL Profiler
Entender o SQL Server Profiler e os Veja como construir o processo
eventos estendidos de coleta de dados no Monitor de
O SQL Server Profiler uma ferramenta desempenho (Perfmon) e correlacionar
nativa fornecida com o SQL Server. a informao sobre o uso de recursos
Elepermite que voc crie um arquivo com dados nos eventos que esto sendo
de rastreamento para capturar eventos disparados dentro do SQL Server:
que ocorrem no SQL Server. Esses 1. Abra o Perfmon.
rastreamentos podem ser inestimveis 2. Se voc no tiver um coletor de dados
na prestao de informaes sobre definido j configurado, crie um
sua carga de trabalho e consultas com agora usando a opo avanada e os
baixo desempenho. Este white paper contadores da Dica 9 como um guia.
no discutir os detalhes sobre como Noinicie o coletor de dados definido
usar a ferramenta do Profiler. Para obter ainda.
O monitoramento
informaes sobre como usar o SQL 3. Abra o Profiler.
Server Profiler, confira o tutorial em 4. Crie um novo rastreamento especificando operacional
vdeono SQLServerPedia. os detalhes sobre a instncia, os eventos
e as colunas que voc deseja monitorar,
verifica o uso geral
Embora seja verdade que o SQL Server bem como o destino. de recursos. O
Profiler foi marcado como preterido no
SQL Server 2012 em favor de eventos
5. Inicie o rastreamento.
6. Retorne para o Perfmon para iniciar o
monitoramento
estendidos, deve-se observar que isso
apenas para o mecanismo do banco
coletor de dados definido. de gargalos se
de dados e no para o SQL Server 7. Deixe ambas as sesses executando
at que os dados necessrios sejam
concentra mais
Analysis Services. O Profiler ainda pode
fornecer grandes informaes sobre capturados. em questes
o funcionamento de aplicaes em 8. Pare o rastreamento do Profiler. Salve o
tempo real para muitos ambientes do rastreamento e, em seguida, feche-o. relacionadas ao
SQL Server. 9. Volte para o Perfmon e pare a coleta de desempenho.
dados definida.
O uso de eventos estendidos est fora 10. Abra o arquivo de rastreamento salvo
do escopo deste white paper. Para obter recentemente no Profiler.
uma descrio detalhada dos eventos 11. Clique em File (Arquivo) e, em seguida,
estendidos, consulte o white paper Import Performance Data (Importar
"Como usar os eventos estendidos dados de desempenho).
e notificaes do SQL Server para 12. Navegue at o arquivo de dados
solucionar problemas de desempenho da Coleta de dados e selecione os
de forma proativa" (em ingls). Basta contadores de desempenho de interesse.
dizer que os eventos estendidos foram
introduzidos no SQL Server 2008 e
Agora, voc ser capaz de ver os
atualizados no SQL Server 2012 para
contadores de desempenho em
incluir mais eventos e uma interface de conjunto com o arquivo de rastreamento
usurio muito aguardada. do Profiler (consulte a Figura 2), o que
permitir uma resoluo de gargalos
Observe que a execuo do Profiler muito mais rpida.
requer a permisso ALTER TRACE.
Dica extra: as etapas acima usam
a interface do cliente. Para poupar
recursos, um rastreamento no lado do
servidor seria mais eficiente. Consulte
os livros on-line para obter informaes
sobre como iniciar e parar rastreamentos
no lado do servidor.

9
O atributo Is_
Dynamic em Sys.
Configurations Figura 2. Uma viso correlacionada de contadores de desempenho em conjunto com o
mostra se a arquivo de rastreamento do Profiler

instncia do SQL Dica n 5. Configure SANs para seu prprio subsistema de E/S til. Para ajustar

Server precisar desempenho do SQL Server. ainda mais o desempenho, primeiro voc
precisa de algumas estatsticas.
As redes de rea de armazenamento (SANs)
ser reiniciada aps so fantsticas. Elas oferecem a capacidade Considere a criao de vrios arquivos de
de provisionar e gerenciar o armazenamento
uma alterao da de uma forma simples. SANs podem ser
dados e grupos de arquivos em VLDBs para
se beneficiar de operaes de E/S paralelas.
configurao. configurados para um desempenho rpido
a partir de uma perspectiva do SQL Server,
Coloque os backups em suas prprias
unidades para fins de redundncia, bem
mas muitas vezes no so. As organizaes como reduzir a conteno de E/S com outros
geralmente implementam SANs para volumes durante os perodos de manuteno.
consolidao de armazenamento e facilidade
de gerenciamento, no para desempenho. Coleta de dados
Para piorar a situao, geralmente voc no H, claro, os contadores de disco do
tem controle direto sobre a forma como Windows, que do uma ideia do que o
o provisionamento feito em uma SAN. Windows acha que est acontecendo. (No
Assim, voc frequentemente ver que a SAN se esquea de ajustar os nmeros brutos com
foi configurada para um volume lgico em base na configurao RAID.) Fornecedores de
que voc deve colocar todos os arquivos de SAN costumam oferecer seus prprios dados
dados. de desempenho.

Melhores prticas para configurar SANs para O SQL Server tambm fornece
desempenho de E/S informaes de E/S no nvel do arquivo:
Ter todos os arquivos em um nico volume Verses anteriores ao SQL 2005 Use a
geralmente no uma boa ideia se voc funo fn_virtualfilestats.
quiser o melhor desempenho de E/S. Como Verses posteriores Use a funo de
melhores prticas, voc vai querer: gerenciamento dinmico sys.dm_io_virtual_
Colocar os arquivos de registro em seu file_stats.
prprio volume, separados dos arquivos
de dados. Os arquivos de registro so Ao usar essa funo no seguinte cdigo,
quase exclusivamente gravados como voc pode:
sequncia e no leitura (as excees incluem Derivar taxas de E/S para leituras e gravaes
Espelhamento de banco de dados e Grupos
Obter a taxa de transferncia de E/S
de disponibilidade Always On). Voc deve
Obter uma mdia de tempo por E/S
sempre configurar para rpido desempenho de
Analisar os tempos de espera de E/S
gravao.
Colocar tempdb em seu prprio volume.
Tempdb usado para uma srie de propsitos
pelo SQL Server internamente, ento, t-lo em

10
SELECT db_name (a.database_id) AS [DatabaseName],
b.name AS [FileName], a.File_ID AS [FileID],
CASE WHEN a.file_id = 2 THEN Log ELSE Data END AS [FileType],
a.Num_of_Reads AS [NumReads],
a.num_of_bytes_read AS [NumBytesRead],
a.io_stall_read_ms AS [IOStallReadsMS],
a.num_of_writes AS [NumWrites],
a.num_of_bytes_written AS [NumBytesWritten],
a.io_stall_write_ms AS [IOStallWritesMS],
a.io_stall [TotalIOStallMS],
DATEADD (ms, -a.sample_ms, GETDATE ()) [LastReset],
( (a.size_on_disk_bytes / 1024) / 1024.0) AS [SizeOnDiskMB],
UPPER (LEFT (b.physical_name, 2)) AS [DiskLocation] Configurar backups
FROM sys.dm_io_virtual_file_stats (NULL, NULL) a para que sejam
JOIN sys.master_files b
ON a.file_id = b.file_id AND a.database_id = b.database_id compactados por
ORDER BY a.io_stall DESC; padro reduz a
conteno de E/S.
Anlise dos dados Dicas para ajustar seu hardware se os
Preste ateno especial ao valor arquivos de banco de dados estiverem
"LastReset" na consulta; ele mostra a corretamente colocados e todos os
ltima vez que o servio do SQL Server pontos de acesso de objetos tiverem
foi iniciado. Os dados de objetos de sido identificados e separados em
gerenciamento dinmico no so diferentes volumes, ento, estar na
persistentes, ento, quaisquer dados hora de dar uma olhada no hardware.
sendo usados para fins de ajuste devem
ser validados em relao ao tempo de Ajustar o hardware um tema
execuo do servio, caso contrrio, especializado fora do escopo deste
podem ser feitas falsas suposies. white paper. Porm, h algumas
melhores prticas e dicas que eu posso
Ao usar esses nmeros, voc poder compartilhar com voc para tornar isso
rapidamente restringir quais arquivos so mais fcil:
responsveis pelo consumo da largura de No use o tamanho da unidade de
banda de E/S e fazer perguntas como: alocao padro ao criar volumes para
Este E/S necessrio? Est faltando um usar com o SQL Server. O SQL Server usa
ndice? extenses de 64KB, ento, esse valor
Ser que uma tabela ou ndice em um deve ser o mnimo.
arquivo responsvel? Posso colocar esse Veja se suas parties esto alinhadas
ndice ou tabela em outro arquivo em outro corretamente. Jimmy May escreveu
volume? um white paper fantstico sobre esse
assunto. Parties desalinhadas podem
reduzir o desempenho em at 30%.
Crie uma referncia de desempenho para
a E/S do seu sistema usando uma ferramenta
como SQLIO. Voc pode assistir a um
tutorial sobre essa ferramenta.

Figura 3. Informaes de E/S em nvel do arquivo do SQL Server

11
Dica n 4. Cursores e outro T-SQL Ajuste de consulta usando planos de
ruim frequentemente voltam para consulta Um T-SQL ruim tambm pode
assombrar as aplicaes. parecer com consultas ineficientes que
Um exemplo de cdigo ruim no usam ndices, principalmente porque o
Em um trabalho anterior, descobri o que ndice est incorreto ou ausente. de vital
deve ser o pior cdigo que j vi na minha importncia ter um bom entendimento
carreira. O sistema foi substitudo h muito sobre como ajustar consultas usando
tempo, mas aqui est um resumo do planos de consulta.
processo pelo qual a funo passou:
Uma discusso detalhada sobre ajuste de
1. Aceite o valor de parmetro a ser removido.
consulta usando planos de consulta est
2. Aceite a expresso de parmetro a ser fora do escopo deste white paper. No
removida. entanto, a maneira mais simples de iniciar
3. Descubra o tamanho da expresso. este processo transformando operaes
O SQL Profiler 4. Carregue a expresso em uma varivel. SCAN em SEEKs. Os SCANs leem cada linha
5. Execute um ciclo com cada caractere na na tabela ou ndice, ento, para tabelas
ainda pode varivel e verifique se esse caractere combina grandes, eles so caros em termos de E/S.
Um SEEK, por outro lado, usar um ndice
fornecer grandes com um dos valores a ser removido. Se
combinar, atualize a varivel para remov-la. para ir direto at a linha necessria, o que,
informaes sobre 6. Siga para o prximo caractere at que a
obviamente, exige um ndice. Se voc
encontrar SCANs em sua carga de trabalho,
expresso seja completamente verificada.
o funcionamento os ndices podero estar ausentes.
Se voc estiver horrorizado, ento, somos
de aplicaes em dois. claro que estou explicando a Existe uma srie de bons livros sobre
tempo real para tentativa de algum de escrever sua prpria
instruo "REPLACE" do T-SQL!
esse tema, inclusive:
"Professional SQL Server Execution Plan
muitos ambientes Tuning" (Ajuste do plano de execuo do
A pior parte que essa funo foi utilizada Professional SQL Server) por Grant Fritchey
do SQL Server. para atualizar os endereos como parte "Professional SQL Server 2012 Internals &
de uma rotina de endereamento e seria Troubleshooting" (Soluo de problemas e
chamada dezenas de milhares de vezes por operaes internas do Professional SQL Server
dia. 2012) por Christian Bolton, Rob Farley, Glenn
Berry, Justin Langford, Gavin Payne, Amit
Executar um rastreamento do Profiler no Banerjee, Michael Anderson, James Boother e
lado do servidor permite visualizar a carga Steven Wort
de trabalho do servidor e escolher partes de "T-SQL Fundamentals for Microsoft SQL Server
cdigo executadas com frequncia (que 2012 and SQL Azure" (Princpios bsicos do
como essa "joia" foi encontrada). T-SQL para Microsoft SQL Server 2012 e SQL
Azure) por Itzik Ben-Gan

Figura 4. Exemplo de um grande plano de consulta

12
Dica n 3. Aumente a reutilizao do plano Avaliar se voc est recebendo um bom
para obter melhor caching do SQLServer. plano de reutilizao
Por que a reutilizao de planos de consulta H alguns contadores de desempenho
importante disponveis no objeto de desempenho
Antes de executar uma instruo SQL, o SQL de estatsticas SQL que lhe diro se voc
Server primeiro cria um plano de consulta. est tendo uma boa reutilizao do
Isso define o mtodo que o SQL Server usar plano. Esta frmula informa a relao de
para levar a instruo lgica da consulta e lotes submetidos para compilaes:
implement-la como uma ao fsica nos
dados. Voc quer que esse nmero seja o
mais baixo possvel. Uma relao 1:1
Criar um plano de consulta pode exigir CPU significa que cada lote enviado est
significativa. Assim, o SQL Server ser executado sendo compilado, e no h nenhuma
de forma mais eficiente se puder reutilizar reutilizao de plano.
SANs podem ser
planos de consulta em vez de criar um novo
cada vez que uma instruo SQL for executada. configurados para
um desempenho
(Batch Requests/sec SQL Compilations/sec) / Batch Requests/sec
rpido a partir de
uma perspectiva
do SQL Server,
Abordar uma reutilizao de plano ruim Um problema comum que o masmuitas vezes
No fcil definir a carga de trabalho
exata responsvel pela reutilizao ruim
cdigo no est usando instrues
parametrizadas preparadas. Usar
no so.
do plano, pois o problema geralmente consultas parametrizadas no s melhora
est no cdigo da aplicao cliente que a reutilizao do plano e sobrecarga
envia as consultas. Portanto, voc pode de compilao, mas tambm reduz
precisar analisar o cdigo da aplicao o risco de ataque de injeo de SQL
cliente que est enviando as consultas. envolvido ao analisar parmetros por
meio da concatenao de cadeias.
Para encontrar o cdigo incorporado A Figura 5 mostra dois exemplos de
dentro de uma aplicao cliente, cdigo. Embora sejam inventados, eles
voc ter que usar os eventos ilustram a diferena entre construir uma
estendidos ou o Profiler. Ao adicionar instruo por meio de concatenao de
o evento SQL:StmtRecompile em um cadeia e usar instrues preparadas com
rastreamento, voc ser capaz de ver parmetros.
quando um evento de recompilao
ocorre. (H tambm um evento chamado
SP:Recompile, que includo para
compatibilidade com verses anteriores,
pois a ocorrncia de recompilao foi
alterada no nvel de procedimento para o
nvel de instruo no SQL Server 2005.)

13
Ruim

As informaes
de E/S no nvel do
arquivo do SQL
Server podem ajudar
voc a identificar
Bom
quais arquivos esto
consumindo largura Figura 5. Comparao do cdigo que constri uma instruo por meio de
concatenao de cadeia e cdigo que usa instrues preparadas com parmetros
de banda de E/S.
O SQL Server no pode reutilizar o plano A memria alocada para o cache
do exemplo "ruim" na Figura 5. Se um de planos reside no pool de buffer.
parmetro for um tipo de cadeia, esta Portanto, um cache de planos
funo poder ser usada para montar sobrecarregado reduz a quantidade
um ataque de injeo de SQL. O "bom" de pginas de dados que podem ser
exemplo no suscetvel a um ataque de armazenadas no cache de buffer, assim,
injeo de SQL porque um parmetro haver mais viagens de ida e volta para
usado e o SQL Server capaz de reutilizar buscar dados no subsistema de E/S, que
o plano. podem ser muito caras.

A definio de configurao ausente Dica n 2. Aprenda a ler o cache de


na Dica n 8 buffer do SQL Server e minimizar a
Aqueles de vocs com uma boa memria sobrecarga do cache.
vo lembrar que na Dica n 8 (em Por que o cache de buffer importante
que falamos sobre as mudanas de Como mencionado no segue bastante
configurao) havia mais um conselho elegante acima, o cache de buffer
que no foi falado. O SQL Server 2008 uma grande rea de memria
introduziu uma definio de configurao usada pelo SQL Server para reduzir
chamada "Otimizar para cargas de trabalho a necessidade de realizar E/S fsico.
ad hoc". Essa configurao solicitar que Nenhuma execuo de consulta do
o SQL Server armazene um plano de SQL Server l os dados diretamente
stub em vez de um plano completo no de um disco; as pginas do banco de
cache de planos. Isto especialmente dados so lidas no cache de buffer. Se a
til para ambientes que usam o cdigo pgina procurada no estiver no cache
T-SQL construdo dinamicamente ou Linq, de buffer, uma solicitao de E/S fsico
que pode resultar na no reutilizao do ficar na fila. Em seguida, a consulta
cdigo. aguarda e a pgina obtida no disco.

14
As alteraes dos dados em uma Eu gostaria de concluir esta seo com
pgina de uma operao DELETE ou uma analogia; muitas pessoas argumentam
UPDATE tambm so feitas s pginas que a inovao de travas antibloqueio e
no cache de buffer. Estas alteraes so de outras tecnologias assistidas significa
depois transmitidas ao disco. Todo esse que as distncias de travamento devem
mecanismo permite que o SQL Server ser reduzidas, e tambm que os limites
otimize o E/S fsico de vrias maneiras: de velocidade podem ser aumentados de
Vrias pginas podem ser lidas e escritas em acordo com essa nova tecnologia. O valor
uma operao de E/S. de aviso de 300 segundos (cinco minutos)
A leitura antecipada pode ser implementada. para Expectativa de vida da pgina incorre
O SQL Server pode notar que para em um debate semelhante na comunidade
determinados tipos de operaes, pode ser do SQL Server: alguns acreditam que esta
til ler pginas em sequncia, supondo que uma regra dura e rpida, enquanto outros
logo depois de ler a pgina solicitada, voc acreditam que o aumento da capacidade
vai querer ler a pgina adjacente. de memria na maioria dos servidores nos Se os arquivos
dias de hoje significa que o valor deve ser
Nota: a fragmentao de ndice prejudicar de milhares e no centenas. Essa diferena de banco de
a capacidade do SQL Server de executar a de opinio destaca a importncia das linhas
otimizao de leitura antecipada. de base e por que to importante ter uma dados estiverem
Avaliao da integridade do cache de
compreenso detalhada do que os nveis
de alerta de cada contador de desempenho
corretamente
buffer
H duas indicaes da integridade do
deve ser no seu ambiente, colocados e todos
cache de buffer: Sobrecarga do cache os pontos de acesso
Taxa de acertos do cache Durante uma grande verificao de tabela
MSSQL$Instance:Buffer Manager\Buffer ou ndice, cada pgina na verificao deve de objetos tiverem
passar pelo cache de buffer, o que significa
Esta a relao de pginas encontradas no
cache e pginas no encontradas no cache que pginas possivelmente teis sero
sido identificados
(as pginas que devem ser lidas fora do disco). despejadas para dar espao a pginas que
Idealmente, voc quer que esse nmero seja provavelmente no sero lidas mais de
e separados em
o mais alto possvel. possvel ter uma alta uma vez. Isto gera alto ndice de E/S j diferentes volumes,
taxa de acertos, mas ainda experimentar a que as pginas despejadas devem ser lidas
sobrecarga do cache. no disco novamente. Esta sobrecarga de ento hora de
MSSQL$Instance:Buffer Manager\Expectativa cache geralmente uma indicao de que
de vida da pgina Esta a quantidade grandes tabelas ou ndices esto sendo
dar uma olhada no
de tempo que o SQL Server est mantendo verificados. hardware.
as pginas no cache de buffer antes de
serem despejadas. A Microsoft diz que uma Para saber quais tabelas e ndices esto
expectativa de vida da pgina superior a ocupando mais espao no cache de buffer,
cinco minutos satisfatria. Se a expectativa voc pode examinar o DMV sys.dm_os_
de vida ficar abaixo disso, poder ser um buffer_descriptors (disponvel a partir do
indicador de presso de memria (memria SQL Server 2005). A consulta de exemplo a
insuficiente) ou sobrecarga do cache. seguir ilustra como acessar a lista

SELECT o.name, i.name, bd.*


FROM sys.dm_os_buffer_descriptors bd
INNER JOIN sys.allocation_units a
ON bd.allocation_unit_id = a.allocation_unit_id
INNER JOIN
sys.partitions p
ON (a.container_id = p.hobt_id AND a.type IN (1, 3))
OR (a.container_id = p.partition_id AND a.type = 2)
INNER JOIN sys.objects o ON p.object_id = o.object_id
INNER JOIN sys.indexes i
ON p.object_id = i.object_id AND p.index_id = i.index_id

15
de tabelas ou ndices que esto Que tipo de padres de acesso esto
consumindo espao no cache de buffer em uso? As colunas range_scan_count
do SQL Server: e singleton_ lookup_count podem nos
dizer quais tipos de padres de acesso so
Voc tambm pode usar os DMVs de usados em um ndice especfico.
ndice para descobrir quais tabelas ou
ndices tm grandes quantidades de E/S A Figura 6 ilustra a sada de uma consulta
fsica. que lista ndices pela espera total
PAGE_IO_ LATCH. Isso ser muito til
ao tentar determinar quais ndices esto
Dica n 1. Entenda como os ndices
envolvidos em gargalos de E/S.
so usados e encontre ndices ruins.
O SQL Server 2012 fornece alguns dados Utilizao do DMO sys.dm_db_index_
muito teis sobre ndices, que voc pode usage_stats
buscar usando DMOs implantados na sys.dm_db_index_usage_stats contm
Executar um verso SQL Server 2005. contagens de diferentes tipos de
operaes de ndice e a hora que cada
rastreamento Utilizao do DMO sys.dm_db_index_ tipo de operao foi executado pela
operational_stats ltima vez. Use esse DMV para responder
do Profiler no sys.dm_db_index_operational_stats s seguintes perguntas:
lado do servidor contm informaes sobre o atual baixo
nvel de E/S, bloqueio, travamento e
Como os usurios esto usando os
ndices? As colunas user_ seeks, user_
permitir que atividade do mtodo de acesso para cada scans, user_lookups podem informar os
ndice. Use esse DMF para responder s tipos e o significado das operaes do
voc visualize a seguintes perguntas: usurio nos ndices.

carga de trabalho Tenho um ndice "favorito"? Tenho um


ndice no qual existe conteno? As
Qual o custo de um ndice? A coluna
user_updates pode informar qual o nvel
do servidor e colunas row lock wait in ms/page lock wait
in ms podem nos dizer se existem esperas
de manuteno para um ndice.
Quando um ndice foi usado pela ltima
selecione partes neste ndice. vez? As colunas last_* podem informar a
Tenho um ndice que est sendo usado
de cdigo de forma ineficiente? Quais ndices esto
ltima vez que uma operao ocorreu em
um ndice.
executadas com atualmente em gargalos de E/S? A coluna
page_io_latch_wait_ ms poder nos dizer
frequncia. se houve espera de E/S ao trazer pginas
de ndice para o cache do buffer; um bom
indicador de que existe um padro de
acesso verificao.

Figura 6. ndices listados pela espera total de PAGE_IO_LATCH

16
Uma expectativa
de vida da
pgina de
Figura 7. ndices listados pelo nmero total de user_seeks
menos de cinco
minutos pode
A Figura 7 ilustra a sada de uma consulta Para recapitular, lembre-se
que lista ndices pelo nmero total de dessas 10 coisas ao otimizar o indicar presso
user_seeks. Se voc quis identificar ndices desempenho do SQL Server:
que tiveram uma alta proporo de 10. A referncia de desempenho facilita as
de memria
verificaes, poder ordenar pela coluna comparaes de comportamento da (memria
user_scans. Agora que voc tem um carga de trabalho e permite detectar
nome de ndice, no seria bom descobrir o comportamento anormal, pois voc insuficiente) ou
quais instrues SQL usaram esse ndice?
NoSQL Server 2005 e verses mais
tem uma boa indicao do que um
comportamento normal.
sobrecarga no
recentes, voc pode fazer isso. 9. Os contadores de desempenho fornecem cache.
informaes rpidas e teis sobre as
H, naturalmente, muitas outras reas operaes atualmente em execuo.
para ndices, como estratgia de design, 8. Alterar as configuraes do servidor pode
consolidao e manuteno. Se voc proporcionar um ambiente mais estvel.
quiser ler mais sobre esta rea vital de 7.  DMOs ajudam voc a identificar gargalos de
ajuste de desempenho do SQL Server, v desempenho rapidamente.
at o SQLServerPedia ou confira alguns dos 6. Aprenda a usar o SQL Profiler, rastreamentos
webcasts da Dell ou white papers sobre o e eventos estendidos.
assunto. 5. SANs so mais do que apenas caixas pretas
que executam E/S.
Concluso 4. Cursores e outro T-SQL ruim
Claro que h muito mais que 10 coisas frequentemente voltam para assombrar as
que voc deve saber sobre o desempenho aplicaes.
do SQL Server. No entanto, este white 3. Aumente a reutilizao do plano para obter
paper oferece um bom ponto de partida e melhor caching do SQL Server.
algumas dicas prticas sobre otimizao de 2. Aprenda a ler o cache de buffer do SQL
desempenho que voc pode aplicar ao seu Server e a minimizar a sobrecarga do cache.
ambiente do SQL Server.
E a dica nmero um para otimizar
o desempenho do SQL Server:
1. Domine a indexao aprendendo como
os ndices so usados e como encontrar
ndicesruins.

17
Chamada para ao
Estou certo de que voc est
ansioso para implementar as lies
aprendidas neste white paper.
Atabela abaixo lista as aes para
buscar um ambiente mais otimizado
do SQL Server:

Ao Subtarefas Data esperada


Obter aprovao para iniciar Fale com o seu gerente de linha e apresente o
o projeto argumento de que, com este projeto em vigor, voc
pode ser proativo ao invs de reativo.
Identificar metas de desem- Fale com as partes interessadas da empresa para
penho
determinar os nveis aceitveis de desempenho.
Usar consultas Estabelecer uma linha de
Colete dados relevantes e armazene-os em um
parametrizadas base para o desempenho do
sistema
repositrio personalizado ou de terceiros.

no s melhora Identificar os principais


contadores de desempenho e
Faa download do pster do Perfmon da Dell.

a reutilizao do configurar rastreamento e/ou


eventos estendidos

plano e sobrecarga Analisar as configuraes do


servidor Preste especial ateno s configuraes de memria
e"Otimizar para cargas de trabalho ad hoc".
de compilao, Analisar o subsistema de E/S Se for o caso, fale com seus administradores de SAN
mas tambm reduz e considere realizar testes de carga de E/S usando
ferramentas como SQLIO, ou simplesmente determine
o risco de ataque a taxa na qual voc pode fazer operaes intensivas de
leitura e gravao, como ao realizar back-ups.

de injeo de Identificar consultas com


baixo desempenho
Analise os dados retornados a partir de rastreamentos,
sesses de eventos estendidos e cache de planos.
SQL envolvido ao Refatorar cdigos com baixo Confira as melhores prticas mais recentes no
desempenho servio de blog sindicalizado do SQLServerPedia.
analisar parmetros Manuteno de ndice Certifique-se de que seus ndices sejam os melhores
possveis.
por meio da
concatenao de
cadeias.

18
Para obter mais informaes A DELL NO ASSUME NENHUMA RESPONSABILIDADE,
2013 Dell, Inc. TODOS OS DIREITOS RESERVADOS. Este SEJA ELA QUAL FOR, E RENUNCIA A TODA GARANTIA
documento contm informaes proprietrias protegidas por EXPLCITA, IMPLCITA OU ESTATUTRIA RELACIONADA A
direitos autorais. Nenhuma parte deste documento pode ser SEUS PRODUTOS, INCLUINDO, SEM LIMITAO, A GARANTIA
reproduzida ou transmitida em qualquer forma ou por qualquer IMPLCITA DE COMERCIABILIDADE, ADEQUAO A UM
meio, eletrnico ou mecnico, incluindo fotocpia e gravao PROPSITO ESPECFICO OU NO VIOLAO. EM HIPTESE
para qualquer propsito, sem a permisso por escrito da Dell, ALGUMA A DELL SER RESPONSVEL POR QUAISQUER
Inc. ("Dell"). DANOS DIRETOS, INDIRETOS, CONSEQUENCIAIS, PUNITIVOS,
ESPECIAIS OU INCIDENTAIS (INCLUINDO, SEM LIMITAO,
Dell, Dell Software, o logotipo e os produtos da Dell Software, DANOS POR PERDA DE LUCROS, INTERRUPO DE
como identificados neste documento, so marcas registradas NEGCIOS OU PERDA DE INFORMAES), DECORRENTES DO
da Dell, Inc. nos EUA e/ou em outros pases. Todas as outras USO OU IMPOSSIBILIDADE DE UTILIZAR ESTE DOCUMENTO,
marcas comerciais ou registradas so de responsabilidade de MESMO QUE A DELL TENHA SIDO AVISADA DA POSSIBILIDADE
seus respectivos proprietrios. DE TAIS DANOS. A Dell no faz quaisquer representaes ou
garantias com relao exatido ou completude do contedo
deste documento e se reserva o direito de fazer alteraes nas
As informaes deste documento so relativas aos produtos
especificaes e descries de produtos a qualquer momento
Dell. Nenhuma licena, expressa ou implcita, por embargo ou
sem aviso prvio. A Dell no se compromete em atualizar as
de outra forma, a qualquer direito de propriedade intelectual
informaes contidas neste documento.
concedida por este documento ou em conjunto com a venda
de produtos Dell. EXCETO CONFORME ESTABELECIDO NOS
TERMOS E CONDIES DA DELL, CONFORME ESPECIFICADO
NO CONTRATO DE LICENA PARA ESTE PRODUTO,

Sobre a Dell
A Dell Inc. (NASDAQ: DELL) escuta seus clientes e fornece,
globalmente, solues de negcios e tecnologias inovadoras
e servios que eles valorizam e nos quais confiam. Para obter
mais informaes, visite o site www.dell.com.

Se voc tiver dvidas sobre o possvel uso deste material,


entre em contato:

Dell Software
5 Polaris Way
Aliso Viejo, CA 92656
www.dell.com
Consulte nosso site para obter informaes sobre escritrios
regionais ou internacionais.

Whitepaper-TenTips-OptimSQL-US-KS-2013-04-03