• Nenhum resultado encontrado

Otimização de consultas

N/A
N/A
Protected

Academic year: 2022

Share "Otimização de consultas"

Copied!
21
0
0

Texto

(1)

Última atualização: 15 de maio de 2006

Banco de Dados

Otimização de consultas

Prof. Joao Eduardo Ferreira Prof. Osvaldo Kotaro Takai

(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 gm

(numero que runs intercaladas em cada passagem)

‡ (nb – 1) < gm < 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 ANDD.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.NSSEMPREGADO)

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

Outras possíveis causas de paralisia flácida, ataxia e desordens neuromusculares, (como a ação de hemoparasitas, toxoplasmose, neosporose e botulismo) foram descartadas,

No final, os EUA viram a maioria das questões que tinham de ser resolvidas no sentido da criação de um tribunal que lhe fosse aceitável serem estabelecidas em sentido oposto, pelo

The DCF model using the Free Cash Flow to the Firm (FCFF) method, estimates in the first place the Enterprise Value of the company, that represents the value of all future cash

Taking into account the theoretical framework we have presented as relevant for understanding the organization, expression and social impact of these civic movements, grounded on

Super identificou e definiu construtos e a respectiva interacção no desenvolvimento da carreira e no processo de tomada de decisão, usando uma série de hipóteses: o trabalho não

O objetivo desse estudo é realizar uma revisão sobre as estratégias fisioterapêuticas utilizadas no tratamento da lesão de LLA - labrum acetabular, relacionada à traumas

Por fim, dada as previstas asserções, o presente artigo conclui a nulidade da Língua Esperanto como proposta de embate ao imperialismo americano, conquanto, o

Outra surpresa fica por conta do registro sonoro: se num primeiro momento o som da narração do filme sobre pôquer, que se sobrepõe aos outros ruídos da trilha, sugere o ponto de