Jessica Correa dos Santos

Propaganda
OTIMIZAÇÃO E PERFORMANCE DE BANCO DE
DADOS UTILIZANDO SQL TUNING
Jéssica Correa dos Santos¹, Alexandre Paulino Sierra da Silva¹
¹Universidade Paranaense (Unipar)
Paranavai-PR-Brasil
[email protected], [email protected]
Resumo. Este artigo descreve técnicas para otimização de banco de dados,
concentrado especificamente na utilização do Tuning. O Tuning refere-se ao
conceito de impor mudanças e aplicar idéias para otimizar o desempenho na
recuperação ou atualização de dados, quando seguidas corretamente as
etapas do otimizador garantem um ótimo desempenho para a aplicação.
1. Introdução
Com o aumento na demanda e da complexibilidade dos sistemas de informação, cresce
também a procura por Sistemas de Gerenciamento Banco de Dados seguros e com alto
desempenho, o desempenho é medido pelo tempo de resposta das consultas, ou seja,
quanto mais rápido for a busca melhor seu desempenho.
O baixo desempenho de um banco de dados nem sempre é aceitável pelos
usuários, pois a lentidão ou indisponibilidade de informação pode gerar em prejuízos
significativos.
A otimização de SQL também conhecida como Tuning, tem a finalidade de
ajustar as consultas, para que elas tenham uma boa performance garantindo o melhor
desempenho possível. (Souza, 2009)
Mesmo em um banco de dados bem projetado pode ocorrer problemas de
performance se a escrita dos comandos SQL for mal elaborada.
Segundo Mullins (1999), cerca de 80% dos problemas de desempenho dos
bancos de dados são causados por códigos SQL mal elaborados.
O objetivo desse trabalho é uma revisão bibliográfica sobre otimização,
concentrando especificamente no tema Tuning, serão apresentados alguns fatores
essenciais para garantir o melhorias na performance e no desempenho da aplicação,
também será mostrado os passos do Tuning.
2. Otimização de banco de dados
A otimização consiste em fornecer a informação ao usuário com o menor tempo
possível, ou seja, encontrar um caminho mais eficiente de processar a mesma requisição.
(Couto, 2006)
Segundo Date (2004) a otimização representa um desafio para os sistemas de
banco de dados relacionais, se o sistema espera atingir um desempenho aceitável. A
vantagem não está apenas no fato que os usuários não precisam se preocupar em
formular consultas para tirar o melhor desempenho do sistema, mas na possibilidade do
otimizador sair-se melhor que o usuário.
De acordo com as contribuições de Souza (2009) o otimizador tem a finalidade
geral de escolher uma estratégia eficaz para avaliar determinada expressão relacional.
2.1.
Otimização de SQL
As intruções SQL mal elaboradas, podem causar probelmas de performance em uma
aplicação, afetando o desempenho do banco de dados. O que ocasiona a maioria desses
problemas é a forma com que os desenvolvedores escrevem as consultas SQL, eles
focam no resultado e não no desempenho.
A otimização de SQL tem como objetivo produzir a escolha mais eficiente para
execução dos comandos SQL, o que acarreta em um ótimo desempenho para a aplicação.
(Gonçalves, 2006)
O Tuning de SQL tem o objetivo de auxiliar na escrita e execução adequada de
comandos SQL, permitindo que a manipulação seja realizada com maior desempenho e
melhorias na performance.
Na escrita de comandos SQL ou na otimização de um comando já existente, o
Tuning de aplicação pode melhorar o tempo de resposta da CPU, reduzir o I/O e os
recursos gastos com memória, garantindo maior desempenho.
3. Tuning
O Tuning significa sintonia ou ajuste para que algo funcione melhor. Ele da suporte ao
Administrador do Banco de Dados (DBA), fazendo ajustes nas aplicações que
melhoram a performance do banco de dados (Ikematu 2009).
Também conhecido como Diagnostics e Tuning, o tuning trata da necessidade e
da importância de um diagnóstico claro e preciso. Depois de diagnosticar o problema
vem o ajuste ou tuning, para que o banco de dados tenha um ótimo desempenho. (Proni
2010).
Segundo Proni 2010 o SQL Tuning tem o papel de melhorar o desempenho das
aplicações executadas. Nos processos computacionais o desempenho é medido pela
velocidade, ou seja, quanto mais rápido melhor o desempenho. A velocidade então é
medida no tempo de resposta das aplicações.
“A fase de tuning de um banco de dados é um processo de refinamento que
envolve modificações em varios aspectos desse BD, e que vão desde mudanças nos
conceitos apreendidos nos diagramas entidade relacionamento (ER) até a troca de
hardware, passando pela configuracão dos softwares que executam nesse sistema.”
(Tramontina, 2008)
3.1.
Utilização do Tuning
Segundo Ikematu (2009), para se obter melhores resultados, ou seja, melhor
performance do BD, o ajuste ou tuning deve ser feito durante a fase de projeto. Pois
com o ajuste no projeto pode-se tirar o máximo de benefícios com um custo mais baixo.
Se não utilizado corretamente na fase de projeto, ou seja, se os usuários
reclamarem sobre tempo de respostas ruins, geralmente é tarde para usar estratégias
mais eficientes do tuning.
Com o sistema bem projetado, pode-se obter vantagens completas de melhorias
de performance e desempenho do banco de dados. Porém mesmo um sistema bem
projetado pode degradar-se com o uso. A vista disso o tuning é uma parte importante da
manutenção do sistema.
“Foque seus esforços de ajuste em comandos onde os benefícios de ajuste
excedem o custo do ajuste. Em complementação a políticas e procedimentos para
análise e revisão de SQL podem ser usadas ferramentas automatizadas para minimizar o
volume de códigos SQL ruins. Use ferramentas tais como TKPROF, SQL Trace Facility
e outras para encontrar o problema. Encontre os comandos que consomem mais
recursos e/ou são executados mais frequentemente. Não adianta ajustar comandos SQL
para projetos ineficientes da aplicação.” (Ikematu 2009)
O Tuning de SQL é apenas uma parte de um conjunto de fatores para a
otimização do ambiente de banco de dados. Alguns fatores são essências para se obter
melhorias na performance e no desempenho da aplicação, a figura 1 demonstra os
fatores essências para o utilização adequada do Tuning.
Uma metodologia recomendada para tuning deveria seguir os seguintes passos:
(Ikematu 2009)
Abaixo a figura demonstra os passos do tuning.
Fonte Ikematu 2009
Visualizando a figura 1, entende-se que o tuning é um processo interativo, e que
um passo depende do outro. Para se obter um melhor desempenho nas consultas, o
ajuste deve ser feito em todas as etapas na elaboração do sistema.
4. Metodologia
Para a realização deste trabalho foi feita uma pesquisa em artigos científicos e sites na
internet e uma revisão bibliográfica.
5. Conclusões
Este artigo demonstrou que a otimização usa técnicas que tende a melhorar o
desempenho do banco de dados. Mas para que otimização traga aumento no
desempenho, essas técnicas devem ser aplicadas corretamente.
O SQL Tuning não trata apenas da otimização de consultas SQL, e sim da
otimização de todas as fases do projeto de banco de dados. Se as fases do Tuning forem
seguidas adquadamente o resultado será satisfatório. Garantindo assim sucesso no
desempenho e na performance do banco de dados.
Referências
COUTO, Eder. Artigo: Aumentando a Performance da Aplicação Através da
Otimização
de
SQL.
iMasters
2006.
Disponível
em:<
http://imasters.com.br/artigo/4055/bancodedados/aumentando_a_performance_da_aplic
acao_atraves_da_otimizacao_de_sql/> Acesso em: 25/07/2013.
DATE, C. J., Introdução a Sistemas de Banco de Dados. 8. ed. Rio de Janeiro: Campus
2004.
GONÇALVES, E. (2006) “Tuning de SQL: a importância da otimização em comandos
SQL”. SQL Magazine, n. 31, p.64-66.
IKEMATU, Ricardo Shoiti. Artigo: “Realizando tuning na base de aplicações”. Celepar
2009
disponível
em:
<http://www.batebyte.pr.gov.br/modules/conteudo/conteudo.php?conteudo=1592>
Acesso em: 25/07/2013.
MULLINS,
Craig
S.
The Most Important Thing is Performance. 1999.
Disponível em <http://www.craigsmullins.com/cnr_perf.htm >. Acesso em: 20/05/2013.
PORNI, Ricardo Portilho, Artigo SQL Magazine: Oracle Benchmark: Linux x Windows.
Disponivel <http://www.devmedia.com.br/oracle-benchmark-linux-x-windows-artigorevista-sql-magazine-87/21045> Acesso em: 05/07/2013
SOUZA, Fernando de Assis; ALONSO, Alana Katiuscia Pires Bosso; SANTOS,
Rodrigo, Artigo Científico: Avaliação das Principais Técnicas de Desempenho em
Banco de Dados Oracle Através da Otimização de SQL. Policamp, 2009. Disponível
em:<http://scholar.googleusercontent.com/scholar?q=cache:dyRs1oU8ZlIJ:scholar.goog
le.com/&hl=pt-PT&as_sdt=0,5>
TRAMONTINA, G. B. Database Tuning: Configurando o Interbase e o PostgresSQL.
Campinas, 2008. Disponivel em <http://www.ic.unicamp.br/~geovane/mo410091/Ch20-ConfigInterbasePosgres-art.pdf> Acesso em: 23/07/2013.
Download