Você está na página 1de 43

UNIVERSIDADEESTADUALDESANTACRUZ(UESC)

CriadapelaLei6.344,de05.12.1991, ereorganizadapelaLei6.898,de18.08.1995e pelaLei7.176,de10.09.1997

CET091 Banco de Dados II Prof. Dr. Marcelo Ossamu Honda


Departamento de Cincias Exatas e Tecnolgicas (DCET) mohonda(at)nbcgib(.)uesc(.)br

Otimizao da Consulta

Prof. Dr. Marcelo Ossamu Honda

2/43

Introduo

Otimizao de Consulta:

Processo para determinar o melhor plano de avaliao de consulta dentre as estratgias possveis, para o processamento de determinada consulta;

No funo do usurio escrever consultas que possam ser processadas de forma eficiente; O sistema construa um plano de avaliao de consulta que reduza o custo da avaliao da consulta; Plano de Avaliao: Define que algoritmo usado para cada operao; Como a execuo das operaes so coordenadas; Aspectos da otimizao:

lgebra relacional: Determinar a expresso mais eficiente; Seleo da estratgia:


Determinar o algoritmo a ser usado;

Custo:

Diferena substancial (estratgia boa X estratgia ruim);

Prof. Dr. Marcelo Ossamu Honda

3/43

Introduo

Etapas da gerao de planos de avaliao de consulta:

1 - Gerar expresses que sejam logicamente equivalentes a expresso de entrada;

Regras de equivalncia;

2 - Gerar planos de avaliao de consulta alternativos; 3 - Estimar custo de cada plano de avaliao;

Para determinar o plano de custo:

Informaes estatsticas das relaes;

Nmero de tuplas, valores distinto de atributos;

Valores estatsticos para determinar resultados intermedirios;

Custo de expresses complexas;

Custo dos algoritmos (valor estatstico);


4/43

Prof. Dr. Marcelo Ossamu Honda

Introduo

Exemplo:

Prof. Dr. Marcelo Ossamu Honda

5/43

Transformao de Expresses Relacionais

Prof. Dr. Marcelo Ossamu Honda

6/43

Transformao de Expresses Relacionais

Consulta pode ser expressa:

Maneiras diferentes; Diferentes custo de avaliao; As expresses resultam o mesmo conjunto de tuplas;

Expresses de lgebra relacional equivalentes:

A ordem das tuplas irrelevante;

Regras de Equivalncia

Uma regra de equivalncia diz que a expresso de duas formas so equivalentes; O otimizador usa as regras de equivalncia para transformar expresses em outras expresses logicamente equivalentes;
7/43

Prof. Dr. Marcelo Ossamu Honda

Regras de Equivalncia

Regra 1:

Operaes de seleo conjuntiva podem ser decompostas em um sequncia de selees individuais;


Cascata de ; 1 ^ 2 (E) = 1 ( 2 (E))

Regra 2:

Operao de seleo so acumulativas;

2 ( 1 (E)) = 1 ( 2 (E))

Prof. Dr. Marcelo Ossamu Honda

8/43

Regras de Equivalncia

Regra 3:

Somente as operaes finais em uma sequncia de operaes de projeo so necessrias;

As outras podem ser omitidas;


L1 ( L2(... Ln(E)))

= L1(E)

Regra 4:

Selees podem ser combinadas com produtos Cartesianos e junes Theta; a) ( E1 X E2 ) = E1 E2 b) 1 ( E1 E2 ) = E1 1^2 E2
9/43

Prof. Dr. Marcelo Ossamu Honda

Regras de Equivalncia

Regra 5:

Operao de juno theta so acumulativas;


As outras podem ser omitidas; E1 E2 = E2 E1 A equivalncia no se mantem;

Necessrio uma operao de projeo para reordenar os atributos corretamente;

Prof. Dr. Marcelo Ossamu Honda

10/43

Regras de Equivalncia

Regra 6:

a) Operao de juno natural so associativas;

(E1E2)E3 = E1(E2E3)

b) As operaes theta so associativas da seguinte maneira;

(E11E2)2^3E3 = E11^3(E22E3)

Prof. Dr. Marcelo Ossamu Honda

11/43

Regras de Equivalncia

Regra 7:

A operao de seleo se distribui pela operao de juno sobre theta sob as duas condies:

a) Ela se distribui quando todos os atributos na condio de seleo 2 envolvem apenas os atributos de uma das expresses; 0 (E1E2)= ( 0(E1) ) E2

Prof. Dr. Marcelo Ossamu Honda

12/43

Exemplos de Transformaes

nome_cliente(cidade_agencia=Cidade Nova^saldo>1000(agncia(contadepositante)))

Prof. Dr. Marcelo Ossamu Honda

13/43

Exemplos de Transformaes

Consulta original:

nome_cliente(cidade_agencia=Cidade Nova^saldo>1000(agncia(contadepositante)))

Regra 6a: Associatividade de juno natural;

nome_cliente(cidade_agencia=Cidade Nova^saldo>1000((agnciaconta)depositante))

Regra 7a: reescrever a consulta

nome_cliente((cidade_agencia=Cidade Nova^saldo>1000(agnciaconta))depositante)

Regra 1: dividir a seleo em duas selees;

nome_cliente((cidade_agencia=Cidade Nova(saldo>1000(agnciaconta)))depositante)

Regra 7a: Realizar mais cedo;

nome_cliente((cidade_agencia=Cidade Nova(agncia)saldo>1000(conta))depositante)

Prof. Dr. Marcelo Ossamu Honda

14/43

Exemplos de Transformaes

nome_cliente((cidade_agencia=Cidade Nova(agncia)saldo>1000(conta))depositante)

Prof. Dr. Marcelo Ossamu Honda

15/43

Ordenao de Juno

importante para reduzir o tamanho dos resultados temporrios; A operao de juno natural associativa;

( r1 r2 ) r3 = r1 ( r2 r3 ) Embora as expresses sejam equivalentes, os custos podem diferir;

Prof. Dr. Marcelo Ossamu Honda

16/43

Ordenao de Juno

Exemplo:

nome_cliente((cidade_agencia=Cidade Nova(agncia))contadepositante) Teste 1:

Temp1 = contadepositante Provavelmente ser uma relao grande; Resultado = cidade_agencia=Cidade Nova(agncia) Temp1

Teste 2:

Temp2 = cidade_agencia=Cidade Nova(agncia)conta Provavelmente uma relao pequena; Resultado = Temp2depositante

Teste 3:

nome_cliente(((cidade_agencia=Cidade Nova(agncia))depositante)conta)

No existe relacionamento entre agencia e depositante,


17/43

Prof. Dr. Marcelo Ossamu Honda

Estimando Estatsticas de Resultados de Expresses

Prof. Dr. Marcelo Ossamu Honda

18/43

Estimando Estatsticas de Resultados de Expresses

O custo de uma operao depende do tamanho e de outras estatsticas de suas entradas; Estimativas no so muito precisas;

Baseadas em suposies; Um plano de avaliao de consulta que possui o menor custo de execuo estimado, pode no ter realmente o menor custo de execuo;

Mesmo com estimativas inexatas, os planos com os menores custos estimados normalmente tm custos de execuo reais que so menores ou perto disso;

Prof. Dr. Marcelo Ossamu Honda

19/43

Informaes do Catlogo

Relaes:

Nmero de tuplas; Nmero de blocos contendo tuplas da relao r; Tamanho de uma tupla de relao r em bytes; Nmero de tuplas da relao r que cabem em um bloco (fator de blocagem); Nmero de valores distintos que aparecem na relao r para um determinado atributo;

Histograma;

ndices:

Altura dos ndices de rvore B+; Nmero de pginas de folha nos ndices;

Defasado:

Evitar sobrecarga no sistema; Atualizao feita em momentos especficos;


20/43

Prof. Dr. Marcelo Ossamu Honda

Estimativa de Tamanho

Tamanho da seleo; Tamanho da juno; Operaes de conjunto; Valores distintos

Prof. Dr. Marcelo Ossamu Honda

21/43

Escolhas de Planos de Avaliao

Prof. Dr. Marcelo Ossamu Honda

22/43

Escolhas de Planos de Avaliao

Defini exatamente que algoritmo dever ser usado para cada operao e como a execuo das operaes devem ser coordenadas;

Prof. Dr. Marcelo Ossamu Honda

23/43

Interao de Tcnicas de Avaliao

Plano de avaliao para uma expresso de consulta individual;

Determinar o algoritmo com menor custo; Considera tambm algoritmos no ideais para operaes individuais; Analisa o resultado de uma operao em relao a entrada da prxima operao;

Escolha do melhor algoritmo geral;

Sadas otimizadas para os prximos passos;

Prof. Dr. Marcelo Ossamu Honda

24/43

Otimizao Baseada em Custo

Gera uma srie de planos de avaliao de consulta a partir de determinada consulta, usando regras de equivalncia;

Escolhe a com o menor custo; Armazena os resultados de clculos e os reutilizam; Pode reduzir o tempo de processamento; Quando uma classificao pode ser til para a operao posterior;
25/43

Programao dinmica;

Ordem de classificao interessante;

Prof. Dr. Marcelo Ossamu Honda

Otimizao Baseada em Custo

Desvantagens:

Custo da prpria otimizao; Grande nmero de planos de avaliao; Alto custo computacional;

Prof. Dr. Marcelo Ossamu Honda

26/43

Heurstica na Otimizao

Otimizadores utilizam heurstica para reduzir o custo da otimizao;

Realize operaes de seleo o mais cedo possvel;

Reduzir o nmero de tuplas das relaes; Utilizam ndices para acessar as tuplas; Considera apenas as ordens de juno em que o operando da direita de cada juno uma das relaes iniciais;

Realize projees mais cedo;

Otimizador System R;

Ordens de juno esquerda profundas;

Prof. Dr. Marcelo Ossamu Honda

27/43

Heurstica na Otimizao

Ordens de juno esquerda profundas;

Prof. Dr. Marcelo Ossamu Honda

28/43

Heurstica na Otimizao

Otimizam a consulta uma vez;


Valores fornecidos para as constantes; Mantm o plano de consulta em cache;

Atualizam os valores e reutilizam o plano de consulta;

Mesmo com o uso de heursticas, a otimizao de consulta baseada em custo impe uma sobrecarga ao processamento da consulta;

Prof. Dr. Marcelo Ossamu Honda

29/43

Otimizando Subconsultas Aninhadas

Conceitualmente (SQL) trata das subconsultas aninhadas na clusula where como funes que apanham parmetros e retornam (nico ou conjunto) valores; Os parmetros so as variveis da consulta de nvel externo que so usadas na subconsulta aninhada;

Chamadas variveis de correlao;

SELECT NOME_CLIENTE FROM CREDOR WHERE EXISTS ( SELECT * FROM DEPOSITANTE WHERE DEPOSITANTE.NOME_CLIENTE = CREDOR.NOME_CLIENTE) Prof. Dr. Marcelo Ossamu Honda 30/43

Otimizando Subconsultas Aninhadas

Avaliao correlacionada;

essa tcnica para avaliar uma consulta com uma subconsulta aninhada;

Subconsulta avaliada separadamente para cada tupla na consulta de nvel externo;

No muito eficiente;

Pode resultar em um nmero muito grande de I/O;

Alternativa;

Transformar subconsulta aninhadas em junes;

SELECT NOME_CLIENTE FROM CREDOR, DEPOSITANTE WHERE DEPOSITANTE.NOME_CLIENTE = CREDOR.NOME_CLIENTE

Prof. Dr. Marcelo Ossamu Honda

31/43

Otimizando Subconsultas Aninhadas

Descorrelao;

Processo de substituio de uma consulta aninhada por uma consulta com uma juno;

Possivelmente ter uma relao temporria;

Complexidade depende do operador;

melhor evitar o uso de subconsultas aninhadas complexas;


Otimizador pode no usar a tcnica de descorrelao; No ser eficiente;

Prof. Dr. Marcelo Ossamu Honda

32/43

Views Materializadas

Prof. Dr. Marcelo Ossamu Honda

33/43

Views Materializadas

Podem melhorar o desempenho do processamento da consulta; Views materializadas precisam ser atualizadas quando os dados usados na definio da view mudarem;

Triggers; Manuteno incremental; Modificar apenas as partes afetadas da view materializadas quando as relaes bsicas forem modificadas; Manuteno imediata da view;

Manuteno de view adiada;


34/43

Prof. Dr. Marcelo Ossamu Honda

Views Materializadas

Otimizar consultas usando views materializadas disponveis; Selecionar views para serem materializadas;

Melhoram o desempenho de consultas mas podem retardar atualizaes;

Uso de ferramentas para administrar ndices e views;

Prof. Dr. Marcelo Ossamu Honda

35/43

Ajuste de Desempenho

Prof. Dr. Marcelo Ossamu Honda

36/43

Ajuste de Desempenho

Ajustar vrios parmetros e opes de projeto a fim de melhorar seu desempenho para uma aplicao especfica;

Aspectos de alto nvel;


Projeto de esquema e transaes; Parmetros do banco de dados; Discos; Memria;

Aspectos de hardware;

Prof. Dr. Marcelo Ossamu Honda

37/43

Localizao dos Gargalos

Gargalos;

Componente, ou conjunto de componentes, limitador; Descobrir quais so os gargalos; Eliminar os gargalos;

Para ajustar um sistema;


Melhorar o desempenho dos componentes; Sistema balanceado, nenhum componente isolado o gargalo;

Verificar se algum outro componente se tornou gargalo;

Prof. Dr. Marcelo Ossamu Honda

38/43

Localizao dos Gargalos

Caractersticas dos sistemas de banco de dados;

Sistemas de enfileiramento;

Tarefa subdividida em diversos servios; Maior parte do tempo aguardando em filas; Longas filas; Alta utilizao de um servio em particular;
39/43

Gargalos;

Prof. Dr. Marcelo Ossamu Honda

Parmetros Ajustveis

Trs nveis;

Hardware;

Disco, RAID, Memria, buffer de discos; Tamanho do buffer, commits, tablespaces; Esquemas, ndices, transaes;

Sistema de banco de dados;

Ajuste do projeto;

Os trs nveis devem ser considerados para ajustar o sistema;

Nveis interagem entre si;


40/43

Prof. Dr. Marcelo Ossamu Honda

Problema

Prof. Dr. Marcelo Ossamu Honda

41/43

Problema

Dados o banco de dados pagila-0.10.1, realizar teste para otimizao das transaes (consultas);

Grupos devem:

Sugerir consultas (desafios);


Dever aplicar as tcnicas as consultas sugerida pelo grupo e por outros grupos; Cada grupo deve sugerir no mnimo de 2 consultas; A primeira deve ser a utilizada no problema anterior; Devem trazer o banco e configuraes; Ser realizado um comparativo entre os grupos; Mdia de 5 teste, utilizando EXPLAIN ANALYSE para cada consulta:

Teste ser realizado em uma nica mquina;


Individual:

Otimizao da Consulta; Transformao de Expresses Relacionais;


42/43

Prof. Dr. Marcelo Ossamu Honda

Referncias

Ramez Elmasri e Shamkant B, Navathe, Sistemas de Banco de Dados, Pearson Addison Wesley, 2005; Abraham Silverschatz, Henry F. Korth e S. Sudarshan, Sistema de Banco de Dados, Editora Campus, 2006; PostgreSQL 8.3.6 Documentation, by The PostgreSQL Global Development Group, Copyright 1996-2008 The PostgreSQL Global Development Group;

Prof. Dr. Marcelo Ossamu Honda

43/43

Você também pode gostar