Você está na página 1de 11

SQL Tuning

em Bancos de Dados Oracle 10G/11G

Fbio Prado
01/2012

www.fabioprado.net
www.fabioprado.net
Captulo 1

Introduo
SQL Tuning
Objetivos do tuning

Minimizar tempo de resposta e recuperao


de dados;

Minimizar concorrncia de acesso aos dados;

Otimizar a taxa de transferncia de dados;

Otimizar a capacidade de carga do Banco de


Dados.

www.fabioprado.net
abril de 12 SQL Tuning em Bancos de Dados Oracle 10G/11G 3
2011 Fbio Prado. Todos os direitos reservados.
Problemas de performance

60% dos problemas de performance so decorrentes de


SQL ruim;

20% dos problemas de performance so decorrentes do


projeto do BD.

www.fabioprado.net
abril de 12 SQL Tuning em Bancos de Dados Oracle 10G/11G 4
2011 Fbio Prado. Todos os direitos reservados.
Onde tunar?

Aplicao:
SQL ruim (mal escrito);
Recursos serializados.

Projeto:
Modelagem dos objetos: tabelas, vises, ndices, sequences
etc.;
Armazenamento dos objetos.

www.fabioprado.net
abril de 12 SQL Tuning em Bancos de Dados Oracle 10G/11G 5
2011 Fbio Prado. Todos os direitos reservados.
Onde tunar?

Banco de Dados:
Alocao de dados em Memria;
Estrutura do Banco de Dados;
Parmetros inapropriados.

Sistema Operacional:
I/O de dados;
Largura de banda;
Alocao de espao em disco;
SWAP;
Parmetros do SO.

www.fabioprado.net
abril de 12 SQL Tuning em Bancos de Dados Oracle 10G/11G 6
2011 Fbio Prado. Todos os direitos reservados.
O que iremos tunar neste
treinamento?

Principalmente Aplicao e Projeto do BD:


SQL ruim (mal escrito);
Recursos serializados.
Modelagem dos objetos: tabelas, ndices, sequences e vises
materializadas;
Armazenamento dos objetos.

Um pouco de configurao do Banco de


Dados:
Alocao de dados em Memria;
Parmetros inapropriados.

www.fabioprado.net
abril de 12 SQL Tuning em Bancos de Dados Oracle 10G/11G 7
2011 Fbio Prado. Todos os direitos reservados.
Por que tunar SQL?

Por que me preocupar em tunar as instrues SQL ao invs de


deixar o trabalho de tuning para o DBA (tunando o BD ao invs
de SQL) ou ao invs de fazer um upgrade de hardware do
servidor de BD?

1- Porque SQL ruim a causa nmero 1 de problemas de


performance;

2- Porque uma aplicao bem projetada pode executar bem em


qualquer BD, porm uma aplicao mal projetada executa mal
at mesmo em um BD bem tunado (com bom hardware e bem
configurado).
www.fabioprado.net
abril de 12 SQL Tuning em Bancos de Dados Oracle 10G/11G 8
2011 Fbio Prado. Todos os direitos reservados.
Por que tunar SQL?

Ver artigo Tuning Banco de Dados de Sandro Lopes, publicado em


09/01/12: http://www.taskblog.com.br/01/tuning-banco-de-dados

Um amigo estava me contando que a empresa onde trabalha trocou


um dos seus servidores por uma mquina mais potente, com
vrios gigabytes de memria e muitos processadores. O objetivo
era fazer com que um determinado programa, considerado crtico
pela empresa, fosse executado com mais performance, podendo
assim atender melhor a demanda dos vrios departamentos que o
acessavam.
Mas infelizmente, esta atualizao tecnolgica (e o investimento
financeiro que no foi modesto), no atingiram os objetivos
esperados. Houve sim uma melhora na performance do programa,
mas ainda estava muito abaixo do esperado.

www.fabioprado.net
abril de 12 SQL Tuning em Bancos de Dados Oracle 10G/11G 9
2011 Fbio Prado. Todos os direitos reservados.
Importante

Ao tunar queries de uma aplicao, elas passaro


a consumir menos recursos do BD.

Consequentemente outras aplicaes que so


executadas no mesmo BD, tambm obtero
ganhos de performance.

www.fabioprado.net
abril de 12 SQL Tuning em Bancos de Dados Oracle 10G/11G 10
2011 Fbio Prado. Todos os direitos reservados.
Ateno

Segurana

Performance

Quanto mais recursos de


segurana forem
implementados, menor ser
a performance do BD.

www.fabioprado.net
abril de 12 SQL Tuning em Bancos de Dados Oracle 10G/11G 11
2011 Fbio Prado. Todos os direitos reservados.