Escolar Documentos
Profissional Documentos
Cultura Documentos
Otimizao da Consulta
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:
Custo:
3/43
Introduo
Regras de equivalncia;
2 - Gerar planos de avaliao de consulta alternativos; 3 - Estimar custo de cada plano de avaliao;
Introduo
Exemplo:
5/43
6/43
Maneiras diferentes; Diferentes custo de avaliao; As expresses resultam o mesmo conjunto de tuplas;
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
Regras de Equivalncia
Regra 1:
Regra 2:
2 ( 1 (E)) = 1 ( 2 (E))
8/43
Regras de Equivalncia
Regra 3:
= 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
Regras de Equivalncia
Regra 5:
10/43
Regras de Equivalncia
Regra 6:
(E1E2)E3 = E1(E2E3)
(E11E2)2^3E3 = E11^3(E22E3)
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
12/43
Exemplos de Transformaes
nome_cliente(cidade_agencia=Cidade Nova^saldo>1000(agncia(contadepositante)))
13/43
Exemplos de Transformaes
Consulta original:
nome_cliente(cidade_agencia=Cidade Nova^saldo>1000(agncia(contadepositante)))
nome_cliente(cidade_agencia=Cidade Nova^saldo>1000((agnciaconta)depositante))
nome_cliente((cidade_agencia=Cidade Nova^saldo>1000(agnciaconta))depositante)
nome_cliente((cidade_agencia=Cidade Nova(saldo>1000(agnciaconta)))depositante)
nome_cliente((cidade_agencia=Cidade Nova(agncia)saldo>1000(conta))depositante)
14/43
Exemplos de Transformaes
nome_cliente((cidade_agencia=Cidade Nova(agncia)saldo>1000(conta))depositante)
15/43
Ordenao de Juno
importante para reduzir o tamanho dos resultados temporrios; A operao de juno natural associativa;
16/43
Ordenao de Juno
Exemplo:
Temp1 = contadepositante Provavelmente ser uma relao grande; Resultado = cidade_agencia=Cidade Nova(agncia) Temp1
Teste 2:
Teste 3:
nome_cliente(((cidade_agencia=Cidade Nova(agncia))depositante)conta)
18/43
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;
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:
Estimativa de Tamanho
21/43
22/43
Defini exatamente que algoritmo dever ser usado para cada operao e como a execuo das operaes devem ser coordenadas;
23/43
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;
24/43
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;
Desvantagens:
Custo da prpria otimizao; Grande nmero de planos de avaliao; Alto custo computacional;
26/43
Heurstica na Otimizao
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;
Otimizador System R;
27/43
Heurstica na Otimizao
28/43
Heurstica na Otimizao
Mesmo com o uso de heursticas, a otimizao de consulta baseada em custo impe uma sobrecarga ao processamento da consulta;
29/43
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;
SELECT NOME_CLIENTE FROM CREDOR WHERE EXISTS ( SELECT * FROM DEPOSITANTE WHERE DEPOSITANTE.NOME_CLIENTE = CREDOR.NOME_CLIENTE) Prof. Dr. Marcelo Ossamu Honda 30/43
Avaliao correlacionada;
essa tcnica para avaliar uma consulta com uma subconsulta aninhada;
No muito eficiente;
Alternativa;
31/43
Descorrelao;
Processo de substituio de uma consulta aninhada por uma consulta com uma juno;
32/43
Views Materializadas
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;
Views Materializadas
Otimizar consultas usando views materializadas disponveis; Selecionar views para serem materializadas;
35/43
Ajuste de Desempenho
36/43
Ajuste de Desempenho
Ajustar vrios parmetros e opes de projeto a fim de melhorar seu desempenho para uma aplicao especfica;
Aspectos de hardware;
37/43
Gargalos;
Melhorar o desempenho dos componentes; Sistema balanceado, nenhum componente isolado o gargalo;
38/43
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;
Parmetros Ajustveis
Trs nveis;
Hardware;
Disco, RAID, Memria, buffer de discos; Tamanho do buffer, commits, tablespaces; Esquemas, ndices, transaes;
Ajuste do projeto;
Problema
41/43
Problema
Dados o banco de dados pagila-0.10.1, realizar teste para otimizao das transaes (consultas);
Grupos devem:
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:
Individual:
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;
43/43