Páginas

3 de fev. de 2012

SQL Tuning: Otimizando sistemas que acessam Bancos de Dados

Olá pessoal,
    
     No artigo de hoje estou publicando parte de um artigo que eu escrevi para a revista SQL Magazine.  Na introdução dele, falo sobre o que é tuning e porque devemos nos preocupar em tunar as intruções SQL das aplicações que a gente desenvolve. O termo tuning ainda pode ser um enigma para muitas pessoas, mas ele vem sendo desvendado e explorado cada vez mais pelos profissionais de Tecnologia da Informação (TI). Quando aplicado em TI, este termo refere-se basicamente ao conceito de propor mudanças e aplicar idéias para otimizar o desempenho na recuperação ou atualização de dados.

     Com o aumento do legado de sistemas corporativos (Ex.:ERPs, CRMsGEDs, Sistemas Financeiros e de Gestão), sistemas web (Ex.: E-Commerce, Internet Banking), e consequentemente o aumento da quantidade de usuários destes sistemas, torna-se um desafio cada vez maior para os profissionais de TI, desenvolver sistemas com boa performance para atrair, manter e satisfazer as necessidades de seus clientes e usuários. Com este cenário, os conhecimentos necessários para tunar sistemas estão tornando-se um requisito de grande importância para a contratação de profissionais de TI. Sites de E-Commerce, por exemplo, precisam ser rápidos para atender e satisfazer a quantidade de usuários que podem efetuar compras pela Internet. Sem este requisito, as chances de sucesso de um E-Commerce são quase nulas!
 
   
Objetivos do Tuning

     Antes de meter a mão na massa e conhecer as dicas, devemos entender primeiramente quais são os objetivos de um trabalho de tuning. Entre os principais, podemos destacar:
         - Minimizar o tempo de resposta e de recuperação de dados
         - Minimizar a concorrência de acesso aos dados;
         - Otimizar a taxa de transferência de dados;
         - Otimizar a capacidade de carga do Banco de Dados.

     Ao tunar instruções SQL, muitos profissionais não entendem por que devemos nos preocupar com esta atividade, ao invés de deixar o trabalho de tuning para um DBA, que pode tentar resolver o problema de performance configurando a instância de BD. Para entender isso, temos que ter ciência de que uma aplicação bem projetada pode executar bem mesmo em uma instância de BD não tunada, porém uma aplicação mal projetada executa mal mesmo em uma instância bem tunada. A má utilização de recursos é uma característica primária de uma aplicação mal projetada e SQL ruim é a causa número 1 de problemas de performance nas aplicações.
     

     Para ajudar os profissionais que precisam tunar suas aplicações (sistemas) no acesso a bancos de dados Oracle 10G e 11G, este artigo irá demonstrar o porquê de otimizarmos instruções SQL e apresentará 5 dicas e técnicas (que fazem parte do meu treinamento de SQL Tuning) para que os sistemas possam ser tunados, e deste modo, apresentar melhor performance.


     Para ler o conteúdo deste artigo na íntegra, veja o artigo Cinco dicas importantes para otimizar instruções SQL em Bancos de Dados Oracle 10G/11G, que eu escrevi para a revista SQL Magazine e  que será publicado em 03/2012, edição nº 97.



[]s

Um comentário:

  1. Olá Fábio,

    Estava lendo essa matéria sua publicada na Revista SQL Magazine 97, como eu estou gostando bastante de estudar Tuning de Banco de Dados, achei bem interessante, muito explicativa, você está de parabéns.

    Agora vem uma pergunta, em relação ao gráfico relativos a problemas de performance, onde você citou que os principais causadores de problemas desempenho são as Query's, Modelo de Dados, Configuração do DB e por último o S.O. Então vem a questão, a Rede não tem um impacto maior nos problemas do que a Configuração do Banco de Dados e o Sistema Operacional, digo isto porque na empresa em que trabalho eu já quebrei a cabeça para descobrir o que estava causando lentidão no Banco, depois das últimas mudanças na rede, não sei porque o banco de melhorado o seu desempenho.

    Só mais uma pergunta, o que você faz para diagnosticar problemas de desempenho, você tem alguma ferramenta em especial que te informa se o problema é query, modelagem, instância do banco, sistema operacional ou rede?

    Obrigado,

    Att,

    Wanderson

    ResponderExcluir