EXPLicando o Explain no PostgreSQL

1.876 visualizações

Publicada em

Apresentação com dicas a respeito do EXPLAIN no PostgreSQL

Publicada em: Tecnologia
0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.876
No SlideShare
0
A partir de incorporações
0
Número de incorporações
8
Ações
Compartilhamentos
0
Downloads
26
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

EXPLicando o Explain no PostgreSQL

  1. 1. EXPLicando o EXPLAIN
  2. 2. Estou com uma query lenta... e agora o que eu faço? ● Chamo alguém mais esperto que eu?
  3. 3. Estou com uma query lenta... e agora o que eu faço? ● Chamo alguém mais esperto que eu? ● Amarro uma gilete na ponta de uma corda e começo com a auto-flagelação (m...- feelings) ??
  4. 4. Estou com uma query lenta... e agora o que eu faço? ● Chamo alguém mais esperto que eu? ● Amarro uma gilete na ponta de uma corda e começo com a auto-flagelação (m...- feelings) ?? ● Paro, respiro fundo e penso?
  5. 5. Então eu decidi pensar... :-) E quem optou por outro caminho... desculpe, vai ter que pensar mesmo assim...
  6. 6. Coisas relevantes sobre uma query lenta ● Vc usa * no SELECT, e na App poucas colunas são usadas ?? ● Junto tabelas gigantes com tabelas grotescas sem seleção ?? ● Tem algum índice associado (aliás eu sei o que é um índice) ?? ● Uso funções e/ou expressões no WHERE ?? (saiba que existe um lugar especialmente reservado para você “In the Hell”)
  7. 7. Ainda não sei o que fazer... Então vamos EXPLicar melhor... ;-)
  8. 8. No PostgreSQL existe um tal de EXPLAIN, que EXPLica como um SQL é planejado para ser posteriormente ser executado, ou seja, ele mostra o “Query Plan”
  9. 9. A estrutura de um “Query Plan” é nada mais que uma árvore composta de “Plan Nodes”
  10. 10. Plan Nodes ● Scans – Table Scans (Sequential, Index, Bitmap, tid) – Other Scans (Function, Values, Result) ● Joins – Nested Loop, Merge, Hash ● Set Operations, Partitioned Tables (Inheritance) – Append – SetOp Except, Intersect ● Miscellaneous – Sort, Aggregate, Unique, Limit – Materialize – SubPlan, Initplan
  11. 11. Nomenclatura
  12. 12. Nomenclatura Join Node
  13. 13. Nomenclatura Scan NodesJoin Node
  14. 14. Nomenclatura
  15. 15. Nomenclatura Startup Cost Total Cost Estimated Rows Estimated Average Row Size (Bytes)
  16. 16. Custo Total
  17. 17. Calculando custo de leitura sequencial em algumas tabelas
  18. 18. Como usar EXPLAIN <query>
  19. 19. Como usar EXPLAIN ANALYZE <query>
  20. 20. Exercício ● Escolher uma query qualquer do e-cidade ● Executar o EXPLAIN e EXPLAIN ANALYZE e identificar os elementos apresentados
  21. 21. Dúvidas???

×