• Nenhum resultado encontrado

Banco de Dados

N/A
N/A
Protected

Academic year: 2022

Share "Banco de Dados"

Copied!
21
0
0

Texto

(1)

   

Banco de Dados

Otimização de Consultas

Joao Eduardo Ferreira Osvaldo Kotaro Takai Marcelo Finger

(2)

   

Introdução

Consulta em linguagem de alto nível Análise e validação

Otimizador de consultas

Gerador de código de consulta

Processamento em tempo de execução do BD Forma intermediária da Consulta

Plano de execução

Código para se executar a consulta (compilado ou interpretado)

Resultado da Consulta

(3)

   

Passos para otimização de consultas

Tradução de consultas SQL – Álgebra relacional

Algoritmos básicos para execução de consultas:

­ ordenação externa

­ seleção

­ junção

­ projeção e conjunto

­ agregação

Heurística na otimização de consultas

Estimativa de custos

(4)

   

Tradução SQL – Álgebra relacional

Em SQL:

SELECT SOBRENOME, NOME FROM EMPREGADO

WHERE SALARIO >  (SELECT  MAX (SALÁRIO) FROM     EMPREGADO WHERE  NUD=5);

Em Álgebra Relacional:

       MAX SALARIO (σ NUD=5 (EMPREGADO)

      π SOBRENOME, NOME  ( σSalário > c (EMPREGADO))

obs.: consulta aninhada correlacionada: variável tupla do bloco externo  aparece na cláusula WHERE do bloco interno.

Consulta aninhada não correlacionada

(5)

   

Ordenação externa

cláusula ORDER BY 

arquivos grandes

FASE 1: Quebra­Ordenação interna (sort)

gera “runs” (fragmentos ordenados do arquivo original)

ordena runs

grava runs

b = numero de blocos do arquivo

nb = espaço disponível de buffer

nr = número de runs iniciais

nr = b/nb

Complexidade ordem = 2 * b (leitura e escrita)

(6)

   

Ordenação externa

FASE 2: Intercalação (merge)

n passagens pela intercalação;

grau de intercalação g

(numero que runs intercaladas em cada passagem)

(n– 1) < g<  nr

número de passagens pelos blocos = loggm (nr)

Complexidade todo processo:

(2 * b) +  (loggm (b/ nb))

(7)

   

Operação Select – Algoritmos básicos

Pesquisa linear 

Pesquisa binária

Utilização de índice primário (ou chave hash)

Utilização de índice primário: <, <=, >, >=

Utilização de índice cluster

Utilização de índice secundário (arvore B+)

(8)

   

Operação Select –  Algoritmos complexos

Seleção conjuntiva usando índice individual 

Seleção conjuntiva usando índice composto

Seleção conjuntiva por meio da intersecção de  ponteiros de registro

­ conceito de seletividade = tuplas  selecionadas/existentes

­ o otimizador deve escolher o caminho de acesso que  recupere o menor número de registros de modo mais  eficiente  quantificar custos

(9)

   

Operação Join

Junção de loop aninhado 

Junção de loop único

Junção merge­sort

Junção hash

(10)

   

Operação Project e de Conjunto

Se incluir a chave, a implementação é trivial,  pois as tuplas sempre serão distintas;

Caso contrário, tuplas replicadas deverão ser  eliminadas usando ordenação, com uso do  operador DISTINCT;

Produto cartesiano: deve­se evitar;

UNION, INTERSECTION, DIFFERENCE

Váriações das técnicas merge­sort (união compatível de  conjuntos ordenados)

(11)

   

Operação Agregação

MIN, MAX utilizam índices;

COUNT, AVERAGE e SUM utilizam índices 

densos (uma entrada de índice para todo registro no arquivo original) 

GROUP BY: utiliza índice cluster

(12)

   

Heurística para otimização de consultas

Árvores de consulta;

Otimização de árvores de consulta; 

Árvores de consulta e planos de execução;

(13)

   

Árvores de consulta

Para todo projeto localizado em 'Stafford', listar o  número do projeto, o número do departamento  responsável, o sobrenome, endereço e data de 

nascimento do gerente responsável pelo departamento. 

Em SQL:

SELECT PNUMERO, DNUM, SNOME, DATANASC, ENDERECO

FROM PROJETO AS P, DEPARTAMENTO AS D , EMPREGADO AS E WHERE P.DNUM=D.DNUMERO AND D.GERNSS=E.SSN AND 

P.LOCALIZACAO='Stafford‘;

Em Álgebra Relacional:

STAFFORD_PROJS ← σ P.LOCALIZAÇÃO = 'Stafford' (PROJETO) 

CONTR_DEPT ← (STAFFORD_PROJS x P.DNUM = D.DNUMERO DEPARTAMENTO)  PROJ_DEPT_MGR ← (CONTR_DEPT x D.GERNSS =E.NSS EMPREGADO) 

RESULT ← π P.NUMERO, P.DNUM, E.SNOME, E.ENDERECO, E.DATANASC (PROJ_DEPT_MGR) 

(14)

   

Árvore de consulta ­ inicial

E

D P

D.GERNSS =E.NSS

 p P.NUMERO, P.DNUM, E.SNOME, E.ENDERECO, E.DATANASC

π

x

σ P.DNUM = D.DNUMERO   P.LOCALIZAÇÃO = 'Stafford'

x

AND AND

(15)

   

Árvore de consulta ­ otimizada

E

D

P

x D.GERNSS =E.NSS

 p P.NUMERO, P.DNUM, E.SNOME, E.ENDERECO, E.DATANASC

π

x P.DNUM = D.DNUMERO

  P.LOCALIZAÇÃO = 'Stafford'

σ (1)

(2)

(3)

(16)

   

Regras Gerais

(17)

   

Regras Gerais

Cascata de seleção

Cascata de projeção

Comutatividade de join

Comutatividade projeção e join

Comutatividade operações de conjunto

Associatividade 

(18)

   

Estimativa de custos

Componentes de Custo;

Informações do Catálogo em função de Custo

Exemplo de consulta baseada na otimização de  custos.

(19)

   

Noções de Tuning 

Índices; produto cartesiano; cache.

Estatísticas armazenamento: tabelas, índice,  log, cache;

Estatísticas E/S: atividade leitura­

gravação(paginação)

Estatísticas:  processamento de  consultas/transações

Estatísticas de índices: níveis de índice x  páginas folhas

(20)

   

Noções de Tuning 

Evitar excessiva contenção de registros;

Minimizar custos adicionais (cópia/logging);

Escalonamento de processos;

Relação disco x memória RAM

(21)

   

FIM

Referencia bibliográfica:

­ Elmasri, R.; Navathe, S.B. Fundamentals of  Database Systems, 4th ed. Addison­Wesley,  Reading, Mass., 2003. 

­ Ramakrishnan, R.; Gehrke, J., Database 

Management Systems, 2 nd ed., McGraw­Hill,  2000.

Referências

Documentos relacionados

Este presente artigo é o resultado de um estudo de caso que buscou apresentar o surgimento da atividade turística dentro da favela de Paraisópolis, uma

Do ponto de vista técnico, conseguiu convencer o corpo médico presente ao encontro que a doença seria transmissível, como comprova o primeiro item da resolução final do encontro:

seria usada para o parafuso M6, foram utilizadas as equações 14 e 15, referentes aos parafusos de 8 mm de diâmetro e folga entre parafuso e furo de 0,5 mm, que definem,

No entanto, os resultados apresentados pelo --linalol não foram semelhantes, em parte, aos do linalol racêmico, uma vez que este apresenta um efeito vasorelaxante em anéis de

Resumo: O presente trabalho corresponde a um estudo empírico descritivo e exploratório que aborda comportamentos e falas de atores políticos que participaram do processo legislativo

As micotoxinas são compostos químicos tóxicos provenientes do metabolismo secundário de fungos filamentosos e conhecidas pelos danos causados à saúde humana e

onde Qe são as forças de origem externa ao sistema e Qc são as forças de reação. Estas equações não podem ser utilizadas diretamente, pois as forças de

A não uniformização quanto ao método de referência pode promover diferenças entre as curvas de calibração geradas por laboratórios de dosimetria citogenética, que podem