consultas em banco de dados amplamente distribuídos cláudio e. c. campelo helton santa cruz...
TRANSCRIPT
![Page 1: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/1.jpg)
Consultas em Banco de Dados Amplamente
Distribuídos
Cláudio E. C. Campelo
Helton Santa Cruz
UNIVERSIDADE FEDERAL DE CAMPINA GRANDEPÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO (DSC / CEEI)
DISCIPLINA BANCO DE DADOS / PROF. MARCUS SAMPAIO
26 de Abril de 2006
![Page 2: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/2.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
2
Roteiro• Processamento de consultas• Otimizadores de Consultas• Otimizadores em Consultas Distribuidas• Programação Dinâmica Iterativa• IDP Standard vs Balanced• BestPlan vs BestRow• Seleção de bons sub-planos• Avaliação de Desempenho• Conclusões• Referências
![Page 3: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/3.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
3
Processamento de consultas
Passos na execução de consultas
• Análise e tradução
• Otimização
• Avaliação
![Page 4: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/4.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
4
Processamento de consultas
![Page 5: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/5.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
5
Otimizadores de Consultas
Recebe uma consulta feita de forma declarativa com SQL ou OQL e encontra a melhor forma de executar a consulta;
Passos:
a) quais índices serão utilizados para executar a consulta;b) qual a ordem de execução das operações da consulta;c) enumera planos alternativos de execução;d) estima os custos de todos usando um modelo de custos;e) escolhe o plano com menor custo;
![Page 6: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/6.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
6
Otimizadores de Consultas
Classes de Algoritmos de Otimização:
• Busca Exaustiva– Tempo de complexidade Exponencial, Programação
Dinâmica;• Heurísticas
– Tempo e complexidade Polinomial, Algoritmos Gulosos;
• Algoritmos Randômicos– Tempo de execução indefinido (Algoritmo
indeterminístico);
![Page 7: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/7.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
7
Programação Dinâmica
• Aplicável a problemas onde a solução ótima pode ser computada a partir da solução ótima previamente calculada e memorizada
• Componente Central de um otimizador - Estratégia de pesquisa ou o algoritmo de enumeração
• O algoritmo de enumeração clássico de otimizadores é baseado em programação dinâmica
![Page 8: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/8.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
8
Programação Dinâmica
• Existe um tradeoff entre a complexidade de um algoritmo de enumeração e a qualidade dos planos gerados pelo algoritmo;
• Programação dinâmica representa o ponto extremo - complexidade exponencial e gera planos ótimos;
• Num sistema centralizado: Tempo de complexidade:O(3n )
Espaço de complexidade : O(2n)
![Page 9: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/9.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
9
Programação Dinâmica
![Page 10: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/10.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
10
Programação DinâmicaO algoritmo trabalha na forma bottom-up:
• Gera plano de acesso para todas as tabelas envolvidas – função accesPlans;
• considera todas as formas possíveis de junção das tabelas com chamadas à função joinPlans;
• Os planos de junção de n relações são passados para a função finalizePlans onde tornam-se planos completos para a consulta (operadores de projeção, junção ou group-by são incorporados, se necessário);
• Descarta blocos de construção anteriores a cada passo. Função prunePlans;
![Page 11: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/11.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
11
Programação DinâmicaExemplo:
Mais Rápida!Passo 1:
Passo 2: Não é Enumerada!
![Page 12: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/12.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
12
Algoritmos Gulosos
• É uma alternativa para programação dinâmica.
• Sempre realiza a escolha que parece ser a MELHOR no momento;
• Rodam mais rápido que a programação dinâmica;
• Também apresenta três fases e constrói planos de uma forma bottom-up.
![Page 13: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/13.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
13
Algoritmos Gulosos
![Page 14: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/14.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
14
Algoritmos Gulosos
• Também faz uso das mesmas funções para gerar planos(accessPlan, joinPlans e finalizePlans).
• Na segunda fase ela faz uma simples e rigorosa seleção das ordens das junções.
• Aplica uma função de avaliação de plano para selecionar a melhor nova junção.
![Page 15: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/15.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
15
Algoritmos Gulosos
• Exemplo: Uma junção da consulta com as tabelas A,B,C,D e E.
– A função de avaliação de plano poderia determinar que a junção de A e D deveria ser primeiro.
– Depois faz a junção do resultado de A e D com C. Depois B e E.
– E finalmente a junção seria o resultado:
• O resultado depende da função de avaliação de plano.
![Page 16: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/16.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
16
Algoritmos Gulosos
• Sistema Centralizado
– Tempo de complexidade: O(n3)– Espaço de complexidade: O(n)
![Page 17: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/17.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
17
Otimizadores em Consultas Distribuidas
• Otimizadores de consultas baseados em programação dinâmica, são facilmente estendidos !
• Como o algoritmo pode estendido para otimizar consultas de sistemas de banco de dados distribuídos ??
R- variações nas funções: accessPlans, joinPlans e finalizePlans
![Page 18: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/18.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
18
Otimizadores em Consultas Distribuidas
• Se a tabela for replicada, a função accessPlans deve gerar diferentes planos de acesso para todos os locais onde a tabela estiver replicada;
• A função joinPlans deve gerar diferentes planos de junção em ordem para especificar que a junção pode ser realizada:– no local em que a tabela exterior foi produzida;– no local em que a tabela interna foi produzida;– em todos os outros lugares interessantes;
![Page 19: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/19.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
19
Otimizadores em Consultas Distribuidas
• A função finalizePlans deve acrescentar um operador de transporte se o plano não for executado no local onde os resultados da consulta devem ser retornados.
• Precisamos ajustar a função prunePlans e ter cuidado quando for dispensar planos que produzem seus resultados em diferentes locais.
![Page 20: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/20.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
20
Otimizadores em Consultas Distribuidas• Exemplo: Se a tabela Emp estiver armazenada em Patos e
Sousa e a tabela Dept estiver armazenada somente em Patos
• não podemos excluir o plano de acesso table_scan(Emp, Patos) até mesmo se ela é mais cara que o plano de acesso table_scan(Emp,Sousa)
![Page 21: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/21.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
21
Otimizadores em Consultas Distribuidas
• Um plano de acesso ou de junção P1 deve ser excluído se existir outro plano de acesso ou de junção P2 que envolve as mesmas tabelas e obedece os critérios seguintes:
• Para todo i є locais_interessantes(P1) :
custo(ship(P1,i)) >= custo(ship(P2,i)) (eq. 1)
![Page 22: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/22.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
22
Otimizadores em Consultas DistribuidasSe a fonte e o destino entre dois locais são idênticos, o
custo de um ship 0.
Ex: cost(ship(table_scan(Emp, Patos), Patos)) = cost(table_scan(Emp, Patos).
• Outro caso em que P1 deve ser descartado é se:
custo(P1) >= custo(ship(P2,x)) (eq. 2)
x = local em que P1 produz os resultados
![Page 23: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/23.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
23
Otimizadores em Consultas Distribuidas• Complexidade:
– Num sistema distribuído:• tempo: O(S3 x 3n)
• espaço: O(S x 2n + S3)
• s = (numero de locais onde existe ao menos uma das tabelas envolvidas na consulta) + (o local para onde retorna os resultados)
![Page 24: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/24.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
24
Otimizadores em Consultas Distribuidas
•Cada ponto representa a consulta na junção de 10 relações
•Tempo de execução cresce de acordo com o número de lugares !
• Precisamos de caminhos alternativos para otimizar consultas em sistemas de banco de dados distribuídos.
![Page 25: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/25.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
25
Problema
– A maioria dos otimizadores comerciais de hoje são baseados em um algoritmo de programação dinâmica;
– Devido a sua alta complexidade, o processamento de consultas complexas podem fazer com que o algoritmo não seja interessante;
![Page 26: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/26.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
26
Programação Dinâmica Iterativa
• Nova classe de algoritmos de enumeração:– Iterative Dynamic Programming
• Idéia da IDP: aplicar programação dinâmica iterativamente;
• IDP tem complexidade razoável (polinomial);
![Page 27: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/27.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
27
Programação Dinâmica Iterativa
• Combinação de programação dinâmica com algoritmo guloso;
• Oito variações:
– Quando uma iteração ocorre (IDP1 vs IDP2);– Os blocos gerados em toda iteração (standard vs
balanced);– O numero de blocos produzidos em toda
iteração(bestPlan vs bestRow).
![Page 28: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/28.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
28
Programação Dinâmica Iterativa
![Page 29: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/29.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
29
IDP 1
• Respeita os limites de recursos de uma máquina/aplicação;
• Usuário pode limitar o tempo.
![Page 30: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/30.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
30
IDP 1
• Vamos assumir os planos de junção de k relações para uma consulta com n tabelas, com n > k;
• Não há memória para considerar os planos de junção de (K + 1) !
• O que IDP1 faz nesse ponto ?
• IDP1 pára quando:
- foram enumerados planos de acesso de k relações;- a memória está cheia;- acaba o time-out.
![Page 31: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/31.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
31
IDP 1Exemplo: junção com 5 tabelas, k = 3
![Page 32: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/32.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
32
IDP 1
![Page 33: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/33.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
33
IDP 1
• Quanto maior o valor de k, maiores recursos;
• Se k >= n , se comporta igual a programação dinâmica;
• Se k = 2, se comporta igual a algoritmo guloso.
![Page 34: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/34.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
34
IDP 1
Complexidade em BD Distrubuído:
• Tempo: O(s3 * nk) , para 2 < k < n ;
• Espaço: O(s * nk + s3).
![Page 35: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/35.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
35
IDP 2
• Aplica algoritmo guloso em cada iteração;
• Em seguida, aplica programação dinâmica para encontrar planos;
• Continua aplicando o processo nas tabelas temporárias(T) ...
![Page 36: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/36.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
36
IDP 2
Complexidade: • Tempo: O(n * (n2 + s3 * 3k))
para muitas tabelas...
• Espaço: O(n + s x 2k + s3)
para muitas tabelas...
![Page 37: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/37.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
37
IDP 1 vs IDP 2
• Ambos os algoritmos aplicam heurísticas para selecionar subplanos;
• Ambos fazem uso da programação dinâmica;
• Ambos podem facilmente ser integrados em um otimizador existente baseado PD;
![Page 38: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/38.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
38
IDP 1 vs IDP 2• IDP2
- decisões heurísticas primeiro;- aplica a programação dinâmica depois;
• IDP1- começa com a programação dinâmica;- aplica as decisões heurísticas depois;
• IDP1 é adaptável e k é um parâmetro opcional;
• No IDP2 k tem que ser configurado antes de começar o algoritmo;
• IDP2 tem complexidade assintótica menor que IDP1;
![Page 39: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/39.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
39
IDP Standard vs Balanced• Diferem nas restrições que eles impõem no tamanho dos blocos selecionados;
• A Standard não impõe restrição;
• A balanceada restringe o tamanho dos blocos selecionados de duas formas:
- O numero de tabelas envolvidas nos subplanos selecionados deve:
- ser o mesmo;- ser menor ou igual a | d/2 |, para d = numero de tabelas na lista TODO.
![Page 40: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/40.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
40
IDP Standard vs Balanceada
Melhores planos:
• Balanceadas - em situações em que um plano “bushy” é necessário;• Standard - em outras situações porque consideram blocos maiores.
![Page 41: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/41.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
41
IDP Standard vs Balanceada
Plano Ótimo
Sub-Plano Selecionado pela versão Standard
Planos Selecionados
![Page 42: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/42.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
42
BestPlan vs BestRow
• BestPlan- Somente um único plano é selecionado em cada iteração;
• BestRow- estende BestPlan retendo toda entrada da estrutura optPlan; - vários planos incomparáveis envolvendo as mesmas tabelas.
• BestRow produz melhores planos que BestPlan;• BestRow possui maior tempo de execução e consome mais memória;
![Page 43: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/43.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
43
Selecionar bons Sub Planos
• Três classes de funções de avaliação de planos:
- Flat; - Ballooning; - Híbrida;
![Page 44: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/44.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
44
Selecionar bons Sub Planos
• “Flat”- Verifica apenas as propriedades do plano;
- Fácil de implementar;
- Tempo constante;
• “Ballooning”- Gera um plano completo a partir do sub plano e utiliza o custo do completo como métrica para avaliar o sub-plano
- Aumenta muito a complexidade, mas gera os melhores planos;
• Híbrida- Seleciona alguns sub-planos com uma função “flat” e então aplica “ballooning” para gerar um único.
![Page 45: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/45.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
45
Avaliação de desempenho(entre as variantes)
• Tempo de otimização
IDP1 / k variável / consulta em cadeia com 10 tabelas
![Page 46: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/46.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
46
• Tempo de otimização
IDP2 / k variável / consulta em cadeia com 10 tabelas
Avaliação de desempenho(entre as variantes)
![Page 47: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/47.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
47
• Tempo de execução da primeira iteração comparado com as demais para “IDP1-standard-bestRow”
Avaliação de desempenho(entre as variantes)
![Page 48: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/48.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
48
• Custos
IDP1 / k variável / consulta em cadeia com 10 tabelas
Avaliação de desempenho(entre as variantes)
![Page 49: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/49.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
49
• Custos
IDP1 / k variável / consulta em estrela com 10 tabelas
Avaliação de desempenho(entre as variantes)
![Page 50: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/50.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
50
• Custos
IDP2 / k variável / consulta em cadeia com 10 tabelas
Avaliação de desempenho(entre as variantes)
![Page 51: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/51.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
51
• Custos
IDP2 / k variável / consulta em estrela com 10 tabelas
Avaliação de desempenho(entre as variantes)
![Page 52: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/52.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
52
• Conclusões
– As variantes “bestRow” produzem planos melhores que “bestPlan”;
– As variantes “Balanced” produzem planos melhores que as “Standard”
– Tanto para IDP1 como para IDP2 a melhor opção é “Balanced-bestRow”
Avaliação de desempenho(entre as variantes)
![Page 53: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/53.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
53
• Custos por tempo de execução
s = 3 / consulta com 10 tabelas
Avaliação de desempenho(IDP X “Dynamic Programming” X 2PO)
Estrela Cadeia
![Page 54: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/54.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
54
Conclusões
• IDP produz, na maioria das situações, planos muito bons devido a programação dinâmica e overhead aceitável usando heurísticas se necessário;
• O IDP produz melhores planos que outros algoritmos em situações que a programação dinâmica não viável;
• Facilmente integráveis a um otimizador existente baseado em programação dinâmica;
![Page 55: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/55.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
55
Conclusões
• IPD também é capaz de se adaptar em casos onde não existem recursos suficientes disponíveis ou a consulta é muito complexa para a programação dinâmica.
•IDP é melhor que aproximações randômicas e heurísticas para otimização de consultas.
![Page 56: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/56.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
56
Conclusões
• IDP1 e IDP2 poderiam ser combinados - Assim, o otimizador sempre gerará planos seguros porque IDP1 é adaptável e usuários podem sobrescrever valores “default” de k quando for usar IDP2 no processo de otimização.
• Testes se tornam difiíceis diante da alta complexidade.
![Page 57: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/57.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
57
Referências• DONALD KOSSMANN and KONRAD STOCKER. ACM Transactions on Database Systems, Vol. 25, No. 1, March 2000, Pages 43–82.
![Page 58: Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PÓS-GRADUAÇÃO EM CIÊNCIA](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc10c497959413d8c344e/html5/thumbnails/58.jpg)
Consultas em Banco de Dados Amplamente Distribuídos
58
Agradecemos a atenção!