Banco de Dados

Ξ Deixe um comentário

Tuning, o que é isso?

publicado por Fabio Prado

Tuning, 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.

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, 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 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: HardwareSoftwareSistema 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 analogia com o trabalho de Tuning que eu já comentei, você notou alguma semelhança?

Para obter mais informações sobre Tuning, em geral, recomendo que você participe de uma palestra que darei em 02/08/2014, no evento GUOB TECH DAY, que ocorrerá em São Paulo. Nesta palestra apresentarei CASES de Tuning de sucesso e muito mais informações sobre o assunto.

[]s

Artigo original: O que é Tuning?

[Crédito da Imagem: Tuning – ShutterStock]

Autor

Sou DBA e instrutor de Bancos de Dados Oracle na FABIOPRADO.NET, articulista da revista SQL Magazine e diversos sites e blogs na área de TI e autor do blog www.fabioprado.net. FORMAÇÃO ACADÊMICA - MBA: Gestão Estratégica de Projetos (2008) - Pós-graduação: Gestão de Projetos em TI com PMBOK (2007) - Graduação: Bacharel em Ciências da Computação (2001) CERTIFICAÇÕES - Oracle PL/SQL Developer Certified Associate 11G: 09/2012 - Oracle Certified Professional (OCP) Database 11G: 08/2012 - Oracle Certified Professional (OCP) Database 10G: 09/2011 - Oracle Certified Associate (OCA) Database 10G: 08/2010 - Microsoft Certified Professional Developer (MCPD) .Net 2.0: 05/2010 - Microsoft Certified Trainer (MCT): 04/2010 - Microsoft Certified Technology Specialist (MCTS) .Net 2.0: 03/2010 - Microsoft Certified Database Administrator (MCDBA) SQL Server 2000: 08/2006 - Microsoft Certified Professional (MCP) Windows Server 2003: 08/2006 - Microsoft Solution Developer (MCSD) .Net 1.1: 09/2003 - Microsoft Certified Application Developer (MCAD) .Net 1.1: 04/2003 - Microsoft Solution Developer (MCSD) Visual Basic 6: 07/2002 EXPERIÊNCIA PROFISSIONAL - Treinamentos em Dot Net e Bancos de Dados Oracle; - Administração, programação e tuning de Banco de Dados Oracle, SQL Server e MySQL, - Tuning de instruções SQL para Bancos de Dados: SQL Server, MySQL e Oracle; - Desenvolvimento de aplicações Windows e Web, críticas e de alta performance, utilizando POO, em equipe, com as seguintes linguagens de programação e ferramentas: Visual Basic .NET, Visual Basic 6.0, C#, ASP, ASP.NET, Javascript, CSS, HTML, Microsoft VSS e Crystal Reports (7.0, 8.5 e .NET); - Análise de Sistemas Orientados a objetos utilizando UML e metodologias baseadas no RUP e XP; - Gerenciamento de Projetos de Desenvolvimento de Software aplicando boas práticas do PMBOK.

Fabio Prado

Comentários

You must be logged in to post a comment.

Busca

Patrocínio

Publicidade



Siga-nos!

Newsletter: Inscreva-se

Para se inscrever em nossa newsletter preencha o formulário.

Artigos Recentes