Tuning em Banco de Dados, o que é isso?

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.

Tuning Performance

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.

Tuning contém somente 2 Ns, portanto, escrever essa palavra contendo 3 Ns (Tunning) não é correto! 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, compreendendo 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 as dicas e técnicas de otimização (que se aplicam 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, Software, Sistema 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. É necessário estudar e pesquisar bastante sobre o assunto. Um ponto muito importante é que a maior parte dos problemas de performance estão em instruções SQL ruins (ver item Application na  Imagem 1). Para adquirir os conhecimentos necessários p/ realizar o 2º tipo de atividade, recomendo o treinamento Performance Tuning for Oracle DBAs. Para adquirir os conhecimentos do 3º tipo de atividade, recomendo o treinamento SQL Tuning em Bancos de Dados Oracle.

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

Outros pontos que eu acho muito importante 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 aplicação, como por exemplo:

  • Quantidade de usuários concorrentes;
  • Se a aplicação realiza muitas escritas ou faz somente leituras;
  • Quantidade de dados que a aplicação irá processar.

O trabalho de um profissional que atua em 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 problemaelabora um diagnóstico e te dá algum remédio, tratamento ou recomenda alguma cirurgia.

Fazendo uma analogia com o trabalho de Tuning em um Banco de Dados que eu já comentei, você notou alguma semelhança?

[]s


Deixe seu comentário

Seu endereço de e-mail não será publicado. Campos com * são obrigatórios!