1 / 19

Otimizador de consultas

Otimizador de consultas. Lílian Simão Oliveira.

Download Presentation

Otimizador de consultas

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Otimizador de consultas LílianSimã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. ConsultasbaseadasemHeurí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.BDATEFROM 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. ÁrvoreCanô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çãobaseadaemCusto • 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çãobaseadaemCusto • 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.

More Related