Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz...

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 DA COMPUTAÇÃO (DSC / CEEI) DISCIPLINA BANCO DE DADOS / PROF. MARCUS SAMPAIO 26 de Abril de 2006

Transcript of Consultas em Banco de Dados Amplamente Distribuídos Cláudio E. C. Campelo Helton Santa Cruz...

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

Consultas em Banco de Dados Amplamente Distribuídos

58

Agradecemos a atenção!