Social Icons

11 de abr de 2014

O que é Tuning?


Olá pessoal,
 
     No artigo de hoje vou comentar sobre o que é Tuning e como fazer Tuning em um Banco de Dados Oracle, passando alguns conceitos básicos e uma visão geral sobre o assunto. Tuning é um termo que desperta um interesse cada vez maior nos profissionais de TI, devido aos fatos que estão descritos abaixo:
          - Aumento do legado de sistemas corporativos (ERPs, GEDs etc.) e sistemas web;
          - Aumento da quantidade de usuários de BDs;
          - Aumento da quantidade de dados
    
     Antes de começar, a 1ª coisa que o profissional de TI que trabalha com Tuning tem que aprender, é como escrever corretamente esta palavra. Muita gente escreve Tuning de forma errada, eu mesmo quando comecei a estudar o assunto, cometia este erro. A palavra tuning contém somente 2 Ns, portanto, escrevê-la com 3 Ns (Tunning) está errado! Tuning, na língua inglesa, é um substantivo derivado do verbo tune, e o erro na sua escrita, ocorre por causa de uma confusão do brasileiro ao aplicar o gerúndio (Present Participle) no verbo tune. Para entender melhor como fazemos essa confusão, sugiro a leitura do artigo Why do some words have double consonants while others have only one?.
        
     Em TI, Tuning refere-se basicamente ao conceito de propor e aplicar mudanças visando otimizar o desempenho na recuperação ou atualização de dados. Em curtas palavras, Tuning (em TI) é sinônimo de otimização. Atualmente existem muitas técnicas e dicas de tuning que podem ser aplicadas para otimizar os sistemas corporativos, compreendo-os desde o nível do sistema operacional, até o nível do seu código-fonte. Para fazer um bom trabalho de Tuning, é necessário executar criteriosamente os seguintes processos:

          1- Entender o problema;    
          2- Elaborar o diagnóstico;     
          3- Aplicar dicas e técnicas de otimização que se relacionam ao diagnóstico elaborado.

     O objetivo principal do trabalho de tuning é minimizar o tempo de resposta e recuperação dos dados das aplicações. Em um Banco de Dados, os 3 tipos de atividades de tuning que podem ser realizadas, são: 

          1- Planejamento de performance:
               Definição e configuração do ambiente em que o BD será instalado, considerando-se os seguintes itens: Hardware, SoftwareSistema Operacional e Infraestrutura de rede.

          2- Tuning de instância e BD:
               Ajuste de parâmetros e configurações do BD (atividades que fazem parte do trabalho de um DBA).  

          3- SQL Tuning:
                Otimização de instruções SQL.

     Para desenvolver bem o 1º tipo de atividade, não há um treinamento específico, mas você verá alguns destes itens em um bom treinamento de Database Performance Tuning. Para se aprofundar é necessário estudar e pesquisar bastante sobre o assunto. Para adquirir os conhecimentos necessários p/ realizar o 2º tipo de atividade, recomendo o treinamento Database Performance Tuning. Para adquirir os conhecimentos do 3º tipo de atividade, recomendo o treinamento SQL Tuning em Bancos de Dados Oracle. Um ponto muito importante a ser ressaltado é que a maior parte dos problemas de performance estão em instruções SQL ruins (ver item Application na  Imagem 1), portanto, dentro do 3º item.

Imagem 1 - Performance Gains from Tuning
Fonte: Tuning  When You Can’t Touch The Code, Michael R. Ault



     O ponto mais importante que eu costumo comentar para quem está começando nessa área, é que existem muitas dicas e técnicas de Tuning, e que não existe uma "receita de tuning" que podemos aplicar em qualquer BD e resolver os seus problemas de lentidão. Para fazer um bom trabalho de Tuning temos que saber usar as ferramentas disponíveis (Ex.: AWR, Statspack, SQL Traces, Visões de performance dinâmicas, Plano de execução etc.); elaborar um bom diagnóstico; e conhecer os recursos do BD, dicas e técnicas que podemos usar, de acordo com o problema encontrado e características da(s) aplicação(ões), como por exemplo:
          - Quantidade de usuários concorrentes;
          - Se ela faz muitas escritas ou somente leituras;
          - Quantidade de dados que ela irá processar.

     O trabalho de um profissional que atua com Tuning é muito parecido com o trabalho de um profissional de Medicina. Quando você tem alguma doença e vai ao Médico, ele normalmente lhe pede para fazer alguns exames e retornar à consulta quando eles estiverem prontos. Ao retornar, ele analisa os exames para identificar o seu problema, elabora um diagnóstico e pode te dar algum remédio, tratamento ou recomendar alguma cirurgia. Fazendo analogia com o trabalho de Tuning que eu já comentei, você notou alguma semelhança?

     Para aprender mais sobre Tuning, recomendo que você participe de uma das próximas turmas dos meus treinamentos abaixo:
          - SQL Tuning;
          - Database Perfomance Tuning.

[]s


Referências:


4 comentários:

  1. Boa Noite,
    Parabéns pelo resumo bem detalhado e especifico estou cursando MYSQL na www.cursoadv.com.br e tenho algumas dificuldades sobre a partes de baco de dados sera que teria alguma orientação.

    ResponderExcluir
    Respostas
    1. Nanner, obrigado pelos comentários. Se vc quer ajuda em MySQL, não sou a pessoa certa para lhe ajudar. Sugiro procurar ajuda com http://wagnerbianchi.com/blog/.

      []s

      Excluir
  2. Fabio,

    Boa noite.

    Gostaria de adquirir o treinamento Tuning SQL como faço ?

    Obrigado

    Helber Marcondes

    ResponderExcluir
    Respostas
    1. Helber, acesse o link: http://www.fabioprado.net/p/sql-tuning.html.
      []s

      Excluir

 

Meus últimos Links Favoritos

Suporte remoto alunos

Seguidores

Meu One Drive (antigo Sky Drive)