Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

EXPLicando o Explain no PostgreSQL

4,266 views

Published on

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

Published in: Technology
  • Login to see the comments

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???

×