A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Otimizador de consultas

Apresentações semelhantes


Apresentação em tema: "Otimizador de consultas"— Transcrição da apresentação:

1 Otimizador de consultas
Lílian Simão Oliveira

2 “a otimização da consulta apresenta tanto um desafio como uma oportunidade”, pois a otimização feita pelo programador ou por um otimizador de banco de dados torna-se um desafio devido ao grande número de relacionamentos existentes em um banco e a diversidade de estruturas de dados existentes no SGBD. A oportunidade acontece pelo simples fato de que otimizar consultas é possível e viável, seja ela como for, feita pelo programador humano, pelo DBA ou pelo próprio otimizador do banco.

3 Otimização de Consulta
Uma consulta SQL quando é solicitada ao banco de dados é tratada pelo SGBD, que ao encontrar o melhor caminho, mostra o resultado das informações descritas no comando.

4 Passos do SGBD

5 Otimizador de consultas
Em algumas linguagens de consulta, a estratégia de execução é definida pela maneira como o usuário (ou programador) expressa a consulta Em SQL, que é uma linguagem declarativa, apenas os resultados desejados são especificados Portanto, a otimização de consultas é necessária em SGBDs relacionais baseados em SQL

6 Otimizador de Consultas
Passos principais Tradução da consulta SQL para a álgebra relacional Otimização do resultado Estratégias de otimização Otimização baseada em heurísticas Otimização baseada na estimativa de custo da consulta Otimização semântica

7 Consultas baseadas em Heurísticas
Consultas são representadas internamente na forma de uma árvore ou grafo Árvores de consulta são preferidas para a otimização pois determinam a ordem de execução das operações Grafos de consulta indicam apenas as operações e os respectivos operandos envolvidos portanto, existe apenas um grafo correspondente a cada consulta Regras heurísticas são usadas para alterar a representação interna (árvore ou grafo) de uma consulta de modo a otimizar a sua execução Por exemplo: operações de projeção e seleção são aplicadas antes de uma junção O plano de execução gerado determina a ordem em que as operações serão executadas e os recursos a serem utilizados (por ex., índices)

8 Exemplo Consulta Q2 : Para cada projeto localizado em ‘Stafford’, recupere o número do projeto, o número do departamento responsável e o último nome, o endereço e a data de nascimento do gerente do departamento. Consulta SQL: SELECT P.PNUMBER, P.DNUM, E.LNAME, E.ADDRESS, E.BDATE FROM PROJECT AS P, DEPARTMENT AS D, EMPLOYEE AS E WHERE P.DNUM=D.DNUMBER AND D.MGRSSN=E.SSN AND P.PLOCATION=‘STAFFORD’; Álgebra Relacional:

9 Árvore de consulta

10 Árvore Canônica

11 Exemplo 2

12 Exemplo2 – Etapa 1

13 Exemplo 2- Etapa 2

14 Exemplo 2- Etapa 3

15 Exemplo 2 – Etapa 4

16 Exemplo 2 – Etapa 5

17 Resumindo Executar operações de SELEÇÃO e PROJEÇÃO primeiramente;
A JUNÇÃO só deve ser realizada depois da SELEÇÃO e PROJEÇÃO; Somente os atributos solicitados para o resultado da consulta e os que realmente são necessários em consultas subseqüentes é que devem ser projetados; Evitar geração de múltiplas tabelas intermediárias; Pesquisar as subexpressões comuns e processá-las somente uma vez;

18 Otimização baseada em Custo
A otimização baseada em custos é gerada a partir de funções estatísticas dos SGBDs. Estas funções armazenam informações referentes ao número de tuplas, aos índices, as chaves e a cardinalidade das tabelas. As estatísticas da distribuição dos dados nas colunas das tabelas e que são usadas para estimar os custos, também consideram o uso de CPU e I/O e o tamanho das tabelas utilizadas.

19 Otimização baseada em Custo
Porém, como este tipo de otimização é baseado em estatísticas e pode gerar um resultado que talvez não seja o melhor. Isto acontece devido ao SGBD utilizar informações armazenadas que talvez estejam desatualizadas. Assim, é necessário que as funções que armazenam as informações das tuplas, índices, chaves e cardinalidade sejam atualizadas periodicamente. Não é viável realizar a atualização todas as vezes que acontece alguma alteração no banco, pois isto implica em alto custo, mas atualizando periodicamente, o SGBD manterá valores próximos aos reais.


Carregar ppt "Otimizador de consultas"

Apresentações semelhantes


Anúncios Google