Publicação

Tuning: banco de dados

foto de
Fabio Prado CONTEÚDO EM DESTAQUE

Entenda o que é Tuning em banco de dados , os conceitos de Tuning e como praticar



Tuning: banco de dados

Este artigo tem a intenção de trabalhar o conceito de Tuning e demonstrar a sua aplicação em banco de dados Oracle . Irei passar por tópicos básicos e promover uma visão geral sobre o assunto.

A primeira coisa que o profissional que trabalha com Tuning deve aprender é como escrever corretamente esta palavra.

Existem diversas ocorrências desta palavra escrita de forma errada. Confesso que quando comecei a estudar, eu mesmo o escrevia de maneira incorreta.

Tuning contém somente duas letras Ns e não três como muitos imaginam: Tu nn ing não é correto! Tuning é um substantivo derivado do verbo em inglês tune , e sua escrita de forma errada deriva da confusão que o brasileiro faz ao aplicar o gerúndio (Present Participle) no verbo. Existe, inclusive um artigo interessante que esclarece este tipo de falha cometida: Why do some words have double consonants while others have only one? .

O que é Tuning

Tuning refere-se basicamente a proposição e aplicação de mudanças visando otimizar o desempenho na recuperação ou atualização de dados. 

De uma forma simplificada, podemos dizer que Tuning no conceito de banco de dados , é sinônimo de otimização .

O objetivo do tuning

O objetivo do trabalho de tuning é minimizar o tempo de resposta e recuperação dos dados das aplicações.

A motivação para a prática Tuning

São três as principais motivações comuns observadas para a informação em bancos de dados, listadas a seguir:

  • Convivemos com uma quantidade crescente de usuários de Bancos de Dados;
  • É crescente também o legado de sistemas corporativos, tais como ERPs , GEDs , e sistemas web;
  • Consequentemente, convivemos com um aumento da quantidade de dados que são tratados por bancos de dados.

Técnicas e processos de tuning

Hoje, existem muitas técnicas e dicas de tuning que podem ser utilizadas na otimização de sistemas. Tais técnicas abrangem desde o nível do S.O. (Sistema Operacional) , até o código-fonte.

São três os principais passos que devem ser perfeitamente seguidos para a realização de um bom trabalho Tuning:

  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).

Tipos de atividades de Tuning

Há uma variação de três principais tipos de atividades de tuning. Descrevo brevemente as atividades a seguir.

Atividade 01: Planejamento de performance:
Esta atividade trata-se de definir e configurar adequadamente o ambiente em que o banco de dados será instalado, abrangendo nesta configuração o Sistema Operacional, o hardware, software, e a infraestrutura de rede.

Para realizar um planejamento de performance, o único requisito que destaco é que é necessário estudar e pesquisar bastante sobre o assunto, pois as ações exigem foco em detalhes.
Atividade 0 2- Tuning de instância e BD :

Consiste em ajustar parâmetros e configurações do Banco de Dados (atividades que fazem parte do trabalho de um DBA ).

Se você deseja obter uma capacitação adequada para os conhecimentos envolvidos com este tipo de atividade, recomendo o treinamento Performance Tuning for Oracle DBAs .

Atividade 0 3- SQL Tuning:

Basicamente significa realizar otimizações de instruções SQL, em busca de melhor desempenho.

Para aperfeiçoar seus conhecimentos em SQL Tuning , faço a sugestão do curso SQL Tuning em Bancos de Dados Oracle.

Vale aqui destacar que a maior parte dos problemas de performance estão em instruções SQL (ver item Application) conforme gráfico apresentado a seguir:


Gráfico de ganhos de performance com tuning
P erformance Gains from TuningFonte: Tuning  When You Can’t Touch The Code, Michael R. Ault

Outras considerações relevantes sobre Tuning

Para quem está estudando o assunto ou iniciando na área, passo algumas observações importantes: existem muitas técnicas e dicas de tuning e não uma "receita de bolo" de otimização que possa ser aplicada em qualquer caso, para qualquer banco de dados.

A experiência conduzirá o profissional ao uso das dicas e técnicas adequadas a cada problema encontrado e características da aplicação, tais como:

  • Avaliar se é realizado um alto volume de escritas pela aplicação ou se esta faz somente leituras;
  • Monitorar o volume e frequência de usuários concorrentes;
  • Mensurar a quantidade de dados que serão processados pela aplicação.

Outro ponto importante para obter uma melhoria de desempenho por meio de Tuning é conhecer e dominar as ferramentas disponíveis. Citando algumas delas: AWR , SQL Traces , Visões de performance dinâmicas, Statspack, Plano de execução , entre outras.

É essencial também elaborar diagnósticos adequados a cada caso, e conhecer os recursos do banco de dados que está sendo trabalhado. Para reforçar este ponto, proponho uma analogia no tópico seguinte.

Tuning e a analogia do médico

Uma analogia do trabalho de quem atua em Tuning é a de um profissional de Medicina: quando você consulta um médico se queixando de alguma doença ou sintoma qualquer, ele provavelmente irá te pedir que realize alguns exames e retorne quando os resultados estiverem prontos.

No segundo encontro, o médico irá analisar os resultados para identificar o seu problema , e então elaborar um diagnóstico apropriado . Apenas depois destes passos, é que ele irá enfim receitá-lo algum remédio, ou qualquer outro tipo de tratamento.

Dá para notar a semelhança com o trabalho de Tuning descrita neste artigo ?

Mais informações

Irei realizar uma palestra em SP no dia 02/08/2014, no evento GUOB TECH DAY , Apresentarei CASES de sucesso e muito mais sobre este tema. Participe, caso deseje obter mais informações sobre Tuning.

[]s

Fábio Prado

Artigo original: O que é Tuning? 

Comentários