EXPLicando
o
EXPLAIN
Estou com uma query lenta... e
agora o que eu faço?
● Chamo alguém mais esperto que eu?
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 um...
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 um...
Então eu decidi pensar... :-)
E quem optou por outro caminho...
desculpe, vai ter que pensar mesmo assim...
Coisas relevantes sobre uma query
lenta
● Vc usa * no SELECT, e na App poucas colunas são
usadas ??
● Junto tabelas gigant...
Ainda não sei o que fazer...
Então vamos EXPLicar melhor...
;-)
No PostgreSQL existe um tal de
EXPLAIN, que EXPLica como um
SQL é planejado para ser
posteriormente ser executado, ou
seja...
A estrutura de um “Query Plan” é
nada mais que uma árvore
composta de “Plan Nodes”
Plan Nodes
● Scans
– Table Scans (Sequential, Index, Bitmap, tid)
– Other Scans (Function, Values, Result)
● Joins
– Neste...
Nomenclatura
Nomenclatura
Join Node
Nomenclatura
Scan NodesJoin Node
Nomenclatura
Nomenclatura
Startup Cost
Total Cost
Estimated Rows
Estimated
Average Row
Size (Bytes)
Custo Total
Calculando custo de leitura
sequencial em algumas tabelas
Como usar
EXPLAIN <query>
Como usar
EXPLAIN ANALYZE <query>
Exercício
● Escolher uma query qualquer do e-cidade
● Executar o EXPLAIN e EXPLAIN ANALYZE e
identificar os elementos apre...
Dúvidas???
EXPLicando o Explain no PostgreSQL
EXPLicando o Explain no PostgreSQL
Próximos SlideShares
Carregando em…5
×

EXPLicando o Explain no PostgreSQL

1.392 visualizações

Publicada em

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

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

Sem downloads
Visualizações
Visualizações totais
1.392
No SlideShare
0
A partir de incorporações
0
Número de incorporações
6
Ações
Compartilhamentos
0
Downloads
20
Comentários
0
Gostaram
1
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???

×