Sandro Gonçalves Murara sandro@sgmti.com.br Evolução dos Métodos de Otimização de Performance em Banco de Dados Oracle Sandro Gonçalves Murara sandro@sgmti.com.br
Agenda Histórico sobre o Oracle Database Server Performance Arquitetura Oracle Otimizador Oracle Evolução Tendências Futuras Perguntas
ORACLE - Histórico Versão Ano Características Oracle 1 1978 Não foi lançado oficialmente Escrito em Assembly Oracle 2 1979 1º SGBDR Comercial Oracle 3 1983 Portabilidade Escrito em C Oracle 4 1984 Leitura Consistente Oracle 5 1985 Cliente/Servidor Oracle 6 1988 Row-level locking Hot backup PL/SQL
ORACLE - Histórico Versão Ano Características Oracle 7 1992 Performance Utilities e Development Tools Segurança Triggers Stored Procedures e Functions Integridade Referencial Cost Based Optmizer (CBO) Oracle 8 1997 All-your-data Database Particionamento Oracle 8i 1999 Internet Database Java e XML
ORACLE - Histórico Versão Ano Características Oracle 9i 2001 Real Application Cluster “Unbreakable” Oracle 10g 2003 Grid Computing Workload Repository Oracle 11g 2007 Real Application Testing
Performance Performance = Desempenho Tempo de resposta de acordo com a expectativa do usuário.
Infra-estrutura de TI
Otimização de Performance Banco de Dados Ajustes de Configuração (tunning) Aplicação Modelagem de Sistemas SQL Programação
Arquitetura Oracle
SQL - Fases de Processamento SELECT * FROM EMP WHERE EMPNO = :1 PARSE EMPNO ENAME SALARY DEPTNO ----- -------------------------- ------- ------ 110 JOHN LEE 1.500 10 111 ALBERT COLLINS 1.000 10 120 ROBERT SMITH 3.000 20 ... PLANO EXECUÇÂO SQL EXECUTE FETCH
A Evolução SGA Shared Pool DB Buffer Subdivisões da SGA - Diferentes Estruturas de Memória Processo Usuário Processos Usuários Database Writer Servidor Compartilhado Processo Servidor Dedicado Processos Específicos Processos Servidores Compartilhados Cost Based Optimizer / Rule Based Optimizer Processo Usuário Clustered Tables Bitmap Indexes Index Organized Tables Particionamento Arquivos do BD
Modos do Otimizador RULE BASED OPTIMIZER (RBO) Regras Formatação do comando SQL Método Default COST BASED OPTIMIZER (CBO) Menor Custo de I/O + CPU Estatíticas Tabelas e Índices Comando ANALYZE
A evolução continua... ORACLE 8 e 8i ORACLE 9i Evolução método CBO Database Resource Manager Novos tipos de índices ORACLE 9i Gerenciamento Dinâmico da SGA Monitores de utilização de memória (views) Coleta de estatísticas mais seletiva e eficiente (DBMS_STAT) Novos Parâmetros de BD Memória Otimizador
A evolução continua... ORACLE 10g ORACLE 11g Diagnóstico e ajustes automáticos de performance Coleta automática de estatísticas Gerenciamento automático de memória SGA Fim do método Rule Based Optimizer Workload Repository SQL Access Advisor e SQL Performance Analizer SQL Profile ORACLE 11g Evolução dos recursos existentes no 10g Gerenciamento Total de Memória (SGA + PGA)
Resumo da Evolução Processos Oracle Gerenciamento de Memória Armazenamento e Indexação Otimizador Geração de Planos de Execução Otimizados Informações de Carga e Processamento Processos e métodos de tunning automatizados Ajustes de SQL Ferramentas de Otimização de Performance e Monitoramento
Tendências Futuras Auto Tunning Workload Compactação de Dados Otimização de SQL e Aplicações
SGM Tecnologia da Informação Perguntas? SGM Tecnologia da Informação http://www.sgmti.com.br Fone: (48) 3028-2169 Sandro Murara sandro@sgmti.com.br