Sei sulla pagina 1di 5

Tuning Projeto Fsico Oracle e MySQL

O que tuning? Focando em banco de dados, tuning nada mais que eliminar todo e qualquer dado desnecessrio na execuo de uma ou mais transaes. Esse dado excessivo pode ser eliminado atravs de diversas solues, tais como: criao e excluso de ndices, alterao de parmetros (inclusive de memria), remodelagem fsica de tabelas, gerao de estatsticas, reescrita de cdigos SQL, entre outros. O tuning tambm a parte fsica, como verificao de espao na memria e HD e tambm de outros sistemas e aplicativos que possam roubar a banda da rede.

Oracle
Anlise da Parte Fsica Verificar primeiramente se todos os servios do Oracle no servidor esto sendo utilizados. Os que no estiverem, desabilite. Ir ajudar o Oracle a carregar mais rapidamente as informaes. Verifique o grfico de desempenho dos processadores do servidor. Eles no podem estar altos. Verifique o quanto est de memria e espao no HD. O Oracle consome muito espao e memria, lembre-se disso. Verifique se h sistemas ou aplicativos de rede instalados no servidor Oracle, pois esses sistemas podem "utilizar" uma grande banda de rede e fazer os protocolos do Oracle demorarem um pouco. Feche esses aplicativos para ter um bom resultado. Anlise da Parte Lgica A criao de muitos ndices em tabelas dentro do banco de dados pode causar perca de performance, ento tente sempre balancear esse nmero, para que no tenha ineficincia dos ndices. Uma outra sugesto, se a empresa estiver executando um sistema de ERP, seja um SAP ou IFS, a partir do Oracle Manager Enterprise, voc ir conseguir ver as sesses dos usurios e ver os SELECTS e comandos DML que o sistema est executando na rede. Isso ser de grande ajuda para afinar o SGDB e ganhar um tempinho a mais de execuo nos processos. Aps fazer todas essas analises, mapear todos os processos passo-a-passo num relatrio e procurar mtodos adequados para melhorar a performance dos servios do Oracle. Quando, por exemplo, for realizar uma transao de consulta no Oracle, ou mesmo transaes de manipulao de dados, criar previamente um plano para a execuo da transao propriamente dita, ou seja, o melhor caminho ou o jeito mais fcil que o otimizador do Oracle acredita ser para alcanar o resultado da consulta. MYSQL

Otimizao da configurao do servidor MySQL


A otimizao do servidor pode incluir uma enormidade de mtodos, o que ns tentaremos de apresentar, mas somente uma introduo relativa aos mtodos de base :

Compilao do servidor Tuning dos parmetros do servidor Tuning de outros parmetros

Para fazer uma boa otimizao, preciso proceder por uma metodologia emprica como fazer as modificaes uma por uma e testar cada vez a reao do sistema para ter uma idia do resultado. Uma medida de desempenho antes e depois de ter efetuado a otimizao permite ver se o sistema foi otimizado ou no.

Compilao do servidor
preconizado de utilizar a verso cdigo do servidor MySQL et de la compilar considerando os diferentes parmetros do sistema como o jogo de caracteres a utilizar, o micro-processador no qual ele vai rodar e de utilizar um compilador adaptado (ex : pgcc para os micro-processadores Pentium).

Tuning dos parmetros do servidor


E possvel otimizar o funcionamento do MySQL trocando os valores dos parmetros do servidor. Para lembrar, para afixar os parmetros preciso utilizar o comando:
show variables;

Para ver o efeito dos parmetros no servidor preciso lanar o comando:


show status;

Existe inmeras ferramentas de monitoring que permitem ver as repercusses das mudanas efetuadas parmetros no servidor MySQL como Mytop equivalente ao comando top de linux. O arquivo my.cnf contm o conjunto dos parmetros a otimizar. Numa primeira etapa, possvel comear com os parmetros gerenciando a memria. O princpio a seguir que quanto mais o servidor beneficia de memria mais rpido ele , no entanto; preciso que a memria esteja disponvel. MySQL contm um conjunto de buffers et cache internos possveis de configurar o espao dada a cada um a partir das variveis do arquivo my.cnf. As duas variveis as

mais importantes so key_buffer_size e table_cache, pois elas so partilhadas por todos os threads que giram em torno do servidor e influenciam de maneira considervel os desempenhos. Um exemplo de varivel:

key_buffer_size: memria utilizada para salvar os ndices MyISAM. table_cache: Nmero de tabelas que podem ser abertas simultaneamente read_buffer_size: memria utilizada para salvar os dados provenientes dos full escaners das tabelas. sort_buffer: memria utilizada para salvar os dados de tabelas que sero classificadas por um ORDER BY.

Tuning de outros parmetros


O servidor MySQL preconizado para um funcionamento excelente no SOLARIS, no entanto, possvel de otimiz-lo nos outros OS para se aproximar de seu rendimento ideal. A utilizao do RAID-RAID 0 preconizada para a otimizao das operaes de leitura escrita. Bem como a utilizao dos discos SCSI antes dos IDE. A utilizao das redes rpidas otimiza os tempos de respostas e otimiza a comunicao entre cliente/escravo para a replicao.

Otimizao do banco de dados


Geralmente para a otimizao dos bancos de dados ns tomaremos as boas prticas e as metodologias de concepo de bancos de dados que permitem criar esquemas de bancos de dados com bom desempenho e normalizados. Mas, para tanto preciso:

Compreender o que lento ao nvel dos bancos de dados Fazer a boa escolha de metodologia e fazer as boas escolhas conceituais. Utilizar os ndices Utilizar OPTIMIZE TABLE

O que deixa lento o banco de dados


Um certo nmero de fatores so geralmente a causa da lentido dos bancos de dados. Citamos abaixo os mais freqentes:

Poucos ndices: A primeira causa de lentido a utilizao de tabelas sem ndices ou sem ndices nas colunas que concernem as buscas. Isto quer dizer que todas as tabelas devem ter ndices, mas que preciso tambm estudar muito bem as necessidades em indexao.

Utilizao excessiva de ndices: para otimizar as consultas e as buscas, os ndices so a soluo, no entanto, o aumento do nmero de ndices influencia os desempenhos das atualizaes, pois no momento da atualizao de uma tabela as operaes de adio, modificao e supresso se repercutem geralmente nos ndices. Utilizao privilgio das tabelas e das colunas das tabelas: cada acesso MySQL deve verificar os direitos nas tabelas e nas colunas o que provoca uma diminuio considervel nos desempenhos. No fazer as boas escolhas na concepo do banco dados.

Modelismo do banco de dados


Utilizar as boas prticas de modelismo e de concepo de banco de dados bem como a escolha da metodologia apropriada permite criar um banco de dados com bom desempenho. Certo nmero de consideraes devem ser observadas.

Escolha apropriada dos tipos de campos: sempre tentar escolher as variveis as mais adaptadas necessidade (exemplo para estocagem de um nmero que no ultrapassa os 10 nmeros mais acertado utilizar um tipo TINYINT). Os campos devem ser pequenos, para que um nmero maior de colunas possam ser carregadas em memria. Utilizao dos campos com comprimento fixo: a utilizao dos comprimentos predeterminados permite otimizar o acesso s colunas, pois suas posies so predefinidas. Isto implica diminuir a utilizao de VARCHAR, de TEXT e de BLOB (para TEXT e BLOB, preconizado de quebrar a normalizao do esquema do banco de dados e de salvar estes campos nas outras tabelas). Aumentar a utilizao das premissas NOT NULL quando for possvel para otimizar o espao de estocagem. Escolher o bom tipo para as tabelas MySQL permite ter tabelas de tipos diferentes num mesmo esquema. Fazer uma boa indexao das tabelas.

Utilizar os ndices
Um ndice uma tabela de busca que permite encontrar rapidamente as linhas de uma tabela. O ndice ajuda a determinar a posio do registro do pedido em uma tabela. Se a tabela no possui um ndice, no momento da busca todos os registros sero pesquisados. Os ndices do MySQL so armazenadas como b-tree (arvores binrias), o que representa uma estrutura de dados fcil e rpida de percorrer. O ndice pode incluir uma coluna nica ou mltipla, o ndice ser chamado durante uma busca em colunas indexadas. No MySQL, a indexao automtica em tabelas com campos com as premissas, PRIMARY, KEY, UNIQUE.

A idia bsica aqui que se busca freqente, e que inclui uma ou mais colunas, preciso criar o ndice correspondente para otimizar o tempo de resposta atravs do comando CREATE INDEX.

Utilizao do comando OPTIMIZE TABLE


Equivalente desfragmentao do disco, o comando OPTIMIZE TABLE permite desfragmentar a tabela..

Otimizao dos pedidos


MySQL permite analisar os pedidos e conhecer o tempo e o plano de execuo. Estas informaes permitem compreender o que torna os pedidos lentos e poder desta forma otimizar a execuo

Detectar os pedidos lentos


Para detectar os pedidos lentos possvel:

ou observar a lentido no momento da execuo e dos tempos de resposta que se mostram anormais. ou fazer benchmark: testar as aplicaes para ver quais os componentes mais lentos. ou verificar Slow query log: possvel de ativar esta opo no MySQL configurando a varivel --log-slow-queries

Assim que os pedidos lentos forem detectados, lanar o comando EXPLAIN permite compreender a execuo e assim conhecer ou intervir para otimizar.

Webgrafia
http://www.oracle.com/pls/db102/homepage http://imasters.com.br/artigo/2394/oracle/tuning/

Potrebbero piacerti anche