Escolar Documentos
Profissional Documentos
Cultura Documentos
DADOS ORACLE
Msc. Renata Cascaes
Especialização em Banco de Dados
Roteiro
Aula 03
Plano de Execução
Índices
Quando criar?
Quando não criar?
Tipos de Índices
Referências
Estatísticas de Banco de Dados
seletividade
=
Número de valores diferentes da coluna / Numero de registros da tabela
Estatísticas de Banco de Dados
Package DBMS_STATS
Cardinalidade;
A forma correta de ler o mapa do plano é começar pela instrução mais à direita (maior
nível). Quando duas instruções estão ao mesmo nível, começa-se pela que tem um ID
menor. Neste caso, vemos que a primeira instrução a ser executada será a n.º 4.
Plano de Execução
Bytes: Total de bytes que serão movimentados para ler os dados da instrução.
Cost: O custo de CPU para a instrução. Este campo não tem qualquer
unidade, pelo que o mesmo deverá ser utilizado como meio de comparação.
Plano de Execução - Dicas
Para tunar uma query, altere uma instrução SQL inúmeras vezes, analise o
plano de execução de cada versão que foi alterada e opte por implementar
aquela versão que consome menos recursos (colunas Bytes e Cost (%CPU))
ou que apresenta menor tempo de resposta (coluna Time).
Se não forem adequadas, quando por exemplo no caso das estatísticas das
tabelas acessadas não estarem atualizadas, é possível forçar uma operação
que possa ser mais performática através do uso de hints.
LABORATÓRIO –
ESTATÍSTICAS E PLANO DE EXECUÇÃO
Índices
Se não houver nenhum índice na tabela que está sendo consultada, o
Oracle irá executar o comando chamado de "TABLE ACCESS FULL“.
Serão lidas linha a linha da tabela até encontrar o item solicitado,
resultando no acesso total à tabela e possivelmente num maior gasto de
tempo para retornar o resultado da consulta se comparado com o uso de
índices.
Índices – Quando criar?
Índices B-tree
Os índices "b-tree" do Oracle têm uma estrutura em árvore.
Alta cardinalidade;
Índices default, também conhecidos como “normais”, são muito utilizados
em ambientes OLTP.
Índices – Tipos de Índices
Índices Bitmap
Foi introduzido no Oracle 7.3 e só pode ser criado na versão Enterprise
Edition;
Mais indicado para baixa cardinalidade e ambientes onde não há alta
concorrência de gravações;
Podem ser utilizados para comparações com NULL e são muito
utilizados em ambientes OLAP.
Tipos de Índices - Índices compostos
Executar uma função em uma coluna indexada na cláusula where impede que o
otimizador utilize o índice.
A função usada para criar o índice pode ser uma expressão aritmética ou uma
expressão que contenha uma função SQL, função PL / SQL definida pelo usuário,
função de pacote ou texto explicativo em C. Por exemplo, uma função pode
adicionar os valores em duas colunas.
Tipos de Índices - Índices baseados
em funções
O REBUILD de índices deve ser evitado sempre que possível, pois ele
consome muita CPU e I/O, impactando de forma negativa no
desempenho dos sistemas em produção.
O comando de rebuild mas comumente utilizado concede um lock
exclusivo na tabela , o que pode gerar um impacto negativo
Referências Bibliográficas
https://docs.oracle.com/cd/E25054_01/server.1111/e16638/stats.htm
https://www.oracle.com/technetwork/pt/articles/database-performance/
indices-fks-3756675-ptb.html
http://dbtimewizard.com.br/blog/execution-plan-como-interpretar-os-
valores-estatisticos-coletados-durante-a-execucao/
https://docs.oracle.com/cd/B10501_01/server.920/a96533/ex_plan.htm
https://docs.oracle.com/cd/B19306_01/server.102/b14220/
schema.htm#CNCPT811
https://certificacaobd.com.br/2013/09/23/oracle-performance-tuning-
parte-iv-tuning-de-indices/
TUNING DE BANCO DE
DADOS ORACLE
Msc. Renata Cascaes
Especialização em Banco de Dados