Clique aqui para ler todos os artigos desta edição
10 dicas sobre SQL Server que todo desenvolvedor deveria saber
Nilton Pinheiro
Este artigo discute |
Este artigo usa as seguintes tecnologias |
· Querys; · SubSelects e Joins; · Planos de Execução; · Dicas Avançadas de banco de dados |
SQL Server. |
Trabalhando como DBA de ambiente corporativo há mais de 5 anos, tenho visto coisas que até o menos experiente desenvolvedor SQL Server acreditaria. Por exemplo, todo desenvolvedor que programa para SQL Server sabe, ou pelo menos deveria saber, que um dos principais requisitos para garantir o bom desempenho de sua query, é analisar o plano de execução da mesma e garantir que essa esteja fazendo uso adequado dos índices da tabela.
No entanto, o que tenho constatado no meu dia a dia, é que ainda são muitos os desenvolvedores que se quer se preocupam com os índices da tabela. O que se percebe, é que pelo menos no primeiro momento, o desenvolvedor está mais preocupado em fazer sua query funcionar e entregar as informações para usuário.
Como resultado, em médio prazo tem-se, alto consumo dos recursos do servidor e a tão detestada lentidão na aplicação. É claro que existem muitos outros pontos que degradam o desempenho de uma aplicação, como por exemplo: estatísticas de acesso a dados desatualizadas, bloqueio de conexões (na maioria das vezes devido a falta de índices), excessiva utilização de cursores etc.
Mas podem ter certeza, a má utilização de índice e até a ausência deles é a maior causa dos problemas de desempenho em aplicações SQL Server. Neste artigo estarei apresentando 10 dicas importantes que todo desenvolvedor deve saber quando trabalhar com o SQL Server.
Dicas sobre como analisar o plano de execução, métodos para a substituição de cursores, utilização de subqueries, utilização de coluna indexada na cláusula where, em fim, dicas que com certeza lhe ajudarão a tirar um maior proveito do SQL Server.
Bom, dada essa pequena introdução, vamos ao que interessa.
1. Sempre analise o plano de execução das queries.
Como eu disse anteriormente, a análise do plano de execução é um dos principais requisitos para garantir o bom desempenho da query. O plano de execução descreve o caminho utilizado pelo otimizador do SQL Server para chegar até os dados solicitados e mostra quais operações foram executadas durante o processamento da query.
No plano de execução, cada operação é representada por um ícone e um conjunto de setas que unem esses ícones. Isso torna fácil entender as características de desempenho de uma query.
Para ver o plano de execução de uma query, entre no Query Analyzer do SQL Server 2000 ou Query Editor do SQL Server 2005, escreva a query e tecle Ctrl+L ou selecione a opção de menu Query>Display Estimated Execution Plan na barra de menus.
Você notará que a query não será efetivamente executada, somente ocorrerá antes a criação do plano de execução. Ao analisar um plano de execução, você deve ter em mente que ele é gerado baseando-se nas estatísticas existentes para a tabela ou índices utilizados pela query, por isso é muito importante que ao analisar o plano de execução as estatísticas de acesso aos objetos estejam atualizadas.
Se as estatísticas não estiverem atualizadas o plano de execução será gerado em cima de dados inconsistentes que podem não refletir a realidade. Você sempre deve atualizar as estatísticas após realizar operações que movimentam grandes volumes de dados ou criação e alteração de índices.
Na Figura 1 temos o exemplo do plano de execução de uma query executada sobre as tabelas Publishers e Title do banco de dados Pubs do SQL Server 2000.
Figura 1. Exemplo de um plano de execução
Observe que cada ícone representa uma operação específica e as setas indicam o caminho a seguir. A seta vermelha indica que a análise sempre deve ser realizada da direita para a esquerda e de cima para baixo.
Plano de Execução
...