|
|
| Linha 1: |
Linha 1: |
| [[Arquivo:Tuning.pdf]]
| | 1 O que é Tuning em Banco de Dados? |
| <br>
| | 2 Qual é a importância do Tuning? |
| | | 3 Objetivo de tuning |
| = O que é Tuning em Banco de Dados? =
| | 3.1 Ajuste das Regras de Negócio |
| <br>
| | 3.2 Ajuste do projeto de Base de Dados |
| | | 3.3 Ajuste do Projeto da Aplicação |
| | | 3.4 Ajuste da Estrutura Lógica da Base de Dados |
| Tuning diz respeito ao ajuste do SGBD para melhor utilização dos recursos deste, provendo um uso eficaz e eficiente do SGBD.
| | 3.5 Ajuste das Operações de Base de Dados |
| Tuning requer conhecimento de:
| | 3.6 Ajuste dos Caminhos de Acesso |
| * Desenvolvimento de Aplicações;
| | 3.7 Ajuste da Alocação de Memória |
| * SGBD;
| | 3.8 Ajuste de I/O e Estrutura Física |
| * Sistema operacional;
| | 3.9 Ajuste da Contenção de Recursos |
| * Hardware .
| | 3.10 Ajuste das Plataformas Básicas |
| | | 4 Técnicas de Tuning = |
| | | 5 Referências |
| O processo de tuning é algo que só deve ser realizado quando houver uma real necessidade, pois envolve uma grande quantidade de processos tanto do
| |
| SGBD como do sistema operacional. Tuning não é só configuração do SGBD, algumas vezes requer configuração no sistema operacional ou otimizar as
| |
| consultas realizadas nos bancos, e algumas configurações podem acarretar em problemas futuros ou até mesmo mau funcionamento do SGBD.
| |
| | |
| | |
| A técnica de tuning de desempenho é uma prática feita em todos os SGBDs importantes com técnicas diferentes. É uma necessidade de toda grande empresa, e requer um grande nível de conhecimento e experiência sobre os processos e suas técnicas, pois nem sempre o problema será resolvido com uma ou duas alterações.
| |
| E sabe-se que somente o investimento na capacidade física (hardware) dos servidores não é garantia de melhora na performance do banco de dados.
| |
| | |
| | |
| = Qual é a importância do Tuning? =
| |
| <br>
| |
| | |
| Tuning é um termo que desperta um grande interesse nos profissionais na área, devido aos seguintes fatos:
| |
| * 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 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 é 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:
| |
| # Entender o problema;
| |
| # Elaborar o diagnóstico;
| |
| # Aplicar as dicas e técnicas de otimização (que se aplicam ao diagnóstico elaborado).
| |
| | |
| | |
| Cada banco de dados possui seu mecanismo interno de processamento e, embora possam ser parecidos, não necessariamente são idênticos e tão pouco executam tarefas idênticas da mesma forma. Conhecer as características do Sistema Gerenciador de Banco de Dados (SGBD) usado é crucial para administrar e desenvolver aplicações com desempenho e escalabilidade melhores, mais seguras, enfim, superiores.
| |
| | |
| | |
| = Objetivo de tuning =
| |
| <br>
| |
| | |
| * 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:
| |
| # 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.
| |
| # Tuning de instância e BD: Ajuste de parâmetros e configurações do BD (atividades que fazem parte do trabalho de um DBA).
| |
| # SQL Tuning: Otimização de instruções SQL.
| |
| <br>
| |
| | |
| | |
| Uma metodologia que pode ser utilizada é a seguinte:
| |
| | |
| | |
| == Ajuste das Regras de Negócio ==
| |
| <br>
| |
| | |
| | |
| Para obter a performance ideal, você pode ter que adaptar regras de negócio. Isto se refere a uma análise do sistema inteiro em mais alto nível. enviada ao banco para processamento.
| |
| | |
| | |
| == Ajuste do projeto de Base de Dados ==
| |
| <br>
| |
| | |
| Na fase de projeto de base de dados, você deve determinar que dados são necessários pelas suas aplicações. Você precisa considerar que relações são importantes e quais são seus atributos. Finalmente, você precisa estruturar a informação para melhor atingir suas metas de performance. O processo de projeto da base de dados geralmente desce ao estágio de normalização quando os dados são analisados para eliminar a redundância de dados. Com a exceção das chaves primárias, qualquer outro dado deveria
| |
| ser armazenado somente uma vez na sua base.
| |
| | |
| == Ajuste do Projeto da Aplicação ==
| |
| | |
| | |
| Analistas de negócio e projetistas deveriam transformar metas de negócio em um projeto de sistema efetivo. Processos de negócio referem-se a uma aplicação particular dentro do sistema ou uma parte da aplicação. Um exemplo de projeto de processo é deixar alguns dados em cache. Deste modo você evita a recuperação da mesma informação várias vezes durante o dia.
| |
| | |
| == Ajuste da Estrutura Lógica da Base de Dados ==
| |
| <br>
| |
| | |
| | |
| Depois da aplicação ter sido projetada, você pode planejar a estrutura lógica da base de dados. Um ajuste fino do projeto de índices, para garantir que não ocorra falta ou exagero de índices. Nesta fase você pode criar índices adicionais além da chave primária e estrangeira.
| |
| | |
| | |
| == Ajuste das Operações de Base de Dados ==
| |
| <br>
| |
| | |
| | |
| Antes de ajustar o SGBD, esteja certo que sua aplicação utiliza todas as vantagens do SQL e das características do gerenciador para o processamento da aplicação. Utilize o otimizador do SGBD e o controle de ‘locks’. Entender o mecanismo de processamento da pesquisa no SGBD é importante para escrever comandos SQL efetivos.
| |
| <br>
| |
| | |
| == Ajuste dos Caminhos de Acesso ==
| |
| <br>
| |
| | |
| | |
| Em bases de dados relacionais, a localização física dos dados não é tão importante como seu lugar lógico dentro do projeto da aplicação. Entretanto, a base de dados tem que encontrar os dados em ordem para retorná-lo para o usuário realizar a pesquisa. A chave para afinar o SQL é minimizar o caminho de pesquisa que a base de dados utiliza para achar o dado.
| |
| | |
| Garanta que exista acesso aos dados de modo eficiente. Considere o uso de ‘clusters’, hash ‘clusters’, índices B-tree, índices bitmap. Isto pode significar que você precise analisar novamente seu projeto depois de já ter sido construído.
| |
| <br>
| |
| | |
| | |
| == Ajuste da Alocação de Memória ==
| |
| <br>
| |
| | |
| | |
| Alocação apropriada de recursos de memória para as estruturas do SGBD pode trazer efeitos positivos na performance. Alocação apropriada de recursos de memória melhoram a performance do cache, reduz o ‘parsing’ de comandos SQL e reduz a paginação.
| |
| | |
| == Ajuste de I/O e Estrutura Física ==
| |
| <br>
| |
| | |
| I/O de disco tende a reduzir a performance de várias aplicações de software. O ajuste de I/O e estrutura física envolve:
| |
| * Distribuir dados em discos diferentes para distribuir I/O e evitar contenção de disco;
| |
| * Criar ‘extents’ grandes o suficiente para seus dados e evitar extensões dinâmicas das tabelas. Isto afeta a performance de alto volume de aplicações OLTP.
| |
| <br>
| |
| | |
| == Ajuste da Contenção de Recursos ==
| |
| <br>
| |
| | |
| | |
| O processamento concorrente de vários usuários pode criar a contenção de recursos. A contenção faz com que os processos esperem até que os recursos sejam disponibilizados.
| |
| <br>
| |
| | |
| == Ajuste das Plataformas Básicas ==
| |
| <br>
| |
| | |
| Conforme a versão do gerenciador para um determinado sistema operacional pode haver parâmetros diferentes de ajuste.
| |
| <br>
| |
| | |
| | |
| = Técnicas de Tuning ==
| |
| | |
| Outros pontos bastante importantes, é 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,ou seja,
| |
| 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.
| |
| Para fazer um bom trabalho de Tuning devemos saber utilizar as ferramentas que nos são 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.
| |
| <br>
| |
| | |
| Em Tuning, comumente serão utilizadas informações de estatísticas de uso de Hardware:
| |
| * Utilização do processador;
| |
| * Atividade de I/O;
| |
| * Paginação;
| |
| * Memória utilizada;
| |
| | |
| | |
| Os principais objetivos de um trabalho de tuning são:
| |
| * 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.
| |
| <br>
| |
| | |
| = Referências =
| |
| <br>
| |
| | |
| # http://www.devmedia.com.br/tuning-de-sql-em-bancos-de-dados-oracle-revista-sql-magazine-97/23810
| |
| # http://www.fabioprado.net/2014/04/o-que-e-tuning-como-tunar.html
| |
| # http://www.profissionaisti.com.br/2014/05/tuning-em-banco-de-dados-o-que-e-isso/
| |
| # http://www.devmedia.com.br/tecnicas-de-tuning-para-melhoria-de-desempenho-em-banco-de-dados-postgresql/13600
| |
| # http://www.devmedia.com.br/tuning-de-bancos-de-dados-oracle-revista-sql-magazine-95/23321
| |
| # http://pt.slideshare.net/danielagmacedo/oracle-11g-inteligncia-em-banco-de-dados
| |
| # http://www.batebyte.pr.gov.br/modules/conteudo/conteudo.php?conteudo=1592
| |
1 O que é Tuning em Banco de Dados?
2 Qual é a importância do Tuning?
3 Objetivo de tuning
3.1 Ajuste das Regras de Negócio
3.2 Ajuste do projeto de Base de Dados
3.3 Ajuste do Projeto da Aplicação
3.4 Ajuste da Estrutura Lógica da Base de Dados
3.5 Ajuste das Operações de Base de Dados
3.6 Ajuste dos Caminhos de Acesso
3.7 Ajuste da Alocação de Memória
3.8 Ajuste de I/O e Estrutura Física
3.9 Ajuste da Contenção de Recursos
3.10 Ajuste das Plataformas Básicas
4 Técnicas de Tuning =
5 Referências