SlideShare uma empresa Scribd logo
6
Mais lidos
8
Mais lidos
10
Mais lidos
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 uma corda
e começo com a auto-flagelação (m...-
feelings) ??
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?
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 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”)
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, ele mostra o “Query Plan”
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
– Nested Loop, Merge, Hash
● Set Operations, Partitioned Tables (Inheritance)
– Append
– SetOp Except, Intersect
● Miscellaneous
– Sort, Aggregate, Unique, Limit
– Materialize
– SubPlan, Initplan
Nomenclatura
Nomenclatura
Join Node
Nomenclatura
Scan NodesJoin Node
Nomenclatura
Nomenclatura
Startup Cost
Total Cost
Estimated Rows
Estimated
Average Row
Size (Bytes)
EXPLicando o Explain no PostgreSQL
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 apresentados
Dúvidas???
EXPLicando o Explain no PostgreSQL

Mais conteúdo relacionado

PDF
PgBouncer: Pool, Segurança e Disaster Recovery | Felipe Pereira
PDF
PostgreSQL: Performance Tuning
PDF
PostgreSQL Deep Internal
PDF
Análise de performance usando as estatísticas do PostgreSQL
PDF
Escalabilidade horizontal com PostgreSQL e Pgpool II
PDF
Replicação Lógica no PostgreSQL 10
PPTX
Getting started with postgresql
PDF
Monitoring the ELK stack using Zabbix and Grafana (Dennis Kanbier / 26-11-2015)
PgBouncer: Pool, Segurança e Disaster Recovery | Felipe Pereira
PostgreSQL: Performance Tuning
PostgreSQL Deep Internal
Análise de performance usando as estatísticas do PostgreSQL
Escalabilidade horizontal com PostgreSQL e Pgpool II
Replicação Lógica no PostgreSQL 10
Getting started with postgresql
Monitoring the ELK stack using Zabbix and Grafana (Dennis Kanbier / 26-11-2015)

Mais procurados (20)

PPTX
PostgreSQL and Linux Containers
PDF
The InnoDB Storage Engine for MySQL
PDF
Best Practices for ETL with Apache NiFi on Kubernetes - Albert Lewandowski, G...
PDF
Alphorm.com Formation PL/SQL
PPTX
Optimizing queries MySQL
PDF
Mastering PostgreSQL Administration
 
PDF
PostgreSQL WAL for DBAs
PDF
cLoki: Like Loki but for ClickHouse
PPTX
Best Practices in Security with PostgreSQL
 
PPTX
Real-time Analytics with Presto and Apache Pinot
PPTX
Real-time Stream Processing with Apache Flink
PDF
Chapter6 database connectivity
PPTX
What is new in Notes & Domino Deleopment V10.x
ODP
Replicação PostgreSQL com RepManager
PDF
Introduction to Vacuum Freezing and XID
PDF
Cosco: An Efficient Facebook-Scale Shuffle Service
PPTX
PostgreSQL Database Slides
PDF
Top 5 Mistakes When Writing Spark Applications
PDF
PostgreSQL: Conceitos e aplicações
PDF
Impala Architecture presentation
PostgreSQL and Linux Containers
The InnoDB Storage Engine for MySQL
Best Practices for ETL with Apache NiFi on Kubernetes - Albert Lewandowski, G...
Alphorm.com Formation PL/SQL
Optimizing queries MySQL
Mastering PostgreSQL Administration
 
PostgreSQL WAL for DBAs
cLoki: Like Loki but for ClickHouse
Best Practices in Security with PostgreSQL
 
Real-time Analytics with Presto and Apache Pinot
Real-time Stream Processing with Apache Flink
Chapter6 database connectivity
What is new in Notes & Domino Deleopment V10.x
Replicação PostgreSQL com RepManager
Introduction to Vacuum Freezing and XID
Cosco: An Efficient Facebook-Scale Shuffle Service
PostgreSQL Database Slides
Top 5 Mistakes When Writing Spark Applications
PostgreSQL: Conceitos e aplicações
Impala Architecture presentation
Anúncio

Destaque (20)

PDF
Extensions on PostgreSQL
PDF
DevOps e PostgreSQL: Replicação de forma simplificada | Miguel Di Ciurcio
PDF
Bad Smells (mal cheiros) em Bancos de Dados
PDF
Keep calm and Database Continuous Deployment
PDF
Dojo plpgsql
PDF
Como posso colaborar com o PostgreSQL
PDF
GSoC2014 - PGDay Ijui/RS Presentation October, 2016
PDF
GSoC2014 - PGCon2015 Presentation June, 2015
PDF
Planejador de Consultas do PostgreSQL
PDF
Bad Smells em Bancos de Dados
PDF
Bad Smells (mal cheiros) em Bancos de Dados
PDF
NoSQL + SQL = PostgreSQL (DBA Brasil 1.0 - São Paulo/SP)
PDF
Dojo PHP (treinanto programação orientada a objetos em PHP)
PDF
NoSQL + SQL = PostgreSQL (TDC2014 - Porto Alegre/RS)
PDF
GSoC2014 - Uniritter Presentation May, 2015
PDF
Sharing Code and Experiences
ODP
Postgres Wonderland - PGDay Cascavél 2013
PDF
PGDay Campinas 2013 - PL/pg…ETL – Transformação de dados para DW e BI usando ...
PDF
PostgreSQL: How to Store Passwords Safely
PDF
PostgreSQL Tuning: O elefante mais rápido que um leopardo
Extensions on PostgreSQL
DevOps e PostgreSQL: Replicação de forma simplificada | Miguel Di Ciurcio
Bad Smells (mal cheiros) em Bancos de Dados
Keep calm and Database Continuous Deployment
Dojo plpgsql
Como posso colaborar com o PostgreSQL
GSoC2014 - PGDay Ijui/RS Presentation October, 2016
GSoC2014 - PGCon2015 Presentation June, 2015
Planejador de Consultas do PostgreSQL
Bad Smells em Bancos de Dados
Bad Smells (mal cheiros) em Bancos de Dados
NoSQL + SQL = PostgreSQL (DBA Brasil 1.0 - São Paulo/SP)
Dojo PHP (treinanto programação orientada a objetos em PHP)
NoSQL + SQL = PostgreSQL (TDC2014 - Porto Alegre/RS)
GSoC2014 - Uniritter Presentation May, 2015
Sharing Code and Experiences
Postgres Wonderland - PGDay Cascavél 2013
PGDay Campinas 2013 - PL/pg…ETL – Transformação de dados para DW e BI usando ...
PostgreSQL: How to Store Passwords Safely
PostgreSQL Tuning: O elefante mais rápido que um leopardo
Anúncio

Semelhante a EXPLicando o Explain no PostgreSQL (18)

PDF
Destistificando o EXPLAIN
PDF
08 sql - parte 02
PDF
Melhorando o desempenho de suas consultas no MySql
PPTX
Por que minha query esta lenta? - Suellen Moraes
PDF
Aula 7 sql - select
PDF
pgDay Campinas – 2015
PDF
Uso de estatísticas pelo postgre sql
PDF
Otimizando suas querys no postgreSQL
PDF
Sql apostila construcao de comandos
PDF
Perfomance em MySQL
DOC
Apostila basica sql
PDF
Afinação da Aplicação | Caminho de Acesso aos Dados
PPTX
Custo Execução de Queries
PPTX
Gestão da Aplicação
PPTX
Custo Execução Queries | Oracle | 2015
PPTX
Oracle Database 12c - Novas Características para DBAs e Desenvolvedores
PDF
PBD Select e restrições para Select
PDF
LabMM4 (T06 - 12/13) - Auto-associações e Introdução ao SQL
Destistificando o EXPLAIN
08 sql - parte 02
Melhorando o desempenho de suas consultas no MySql
Por que minha query esta lenta? - Suellen Moraes
Aula 7 sql - select
pgDay Campinas – 2015
Uso de estatísticas pelo postgre sql
Otimizando suas querys no postgreSQL
Sql apostila construcao de comandos
Perfomance em MySQL
Apostila basica sql
Afinação da Aplicação | Caminho de Acesso aos Dados
Custo Execução de Queries
Gestão da Aplicação
Custo Execução Queries | Oracle | 2015
Oracle Database 12c - Novas Características para DBAs e Desenvolvedores
PBD Select e restrições para Select
LabMM4 (T06 - 12/13) - Auto-associações e Introdução ao SQL

Mais de Fabrízio Mello (15)

PDF
PHP e PostgreSQL: Um é pouco, dois é bom, três é demais
PDF
Bad Smells (mal cheiros) em Bancos de Dados
PPTX
URCAMP (Jun2017) - Como o papel e atividades de DBA ficam no contexto da cult...
PDF
DBA Brasil 2.0: Como o papel e atividades de DBA ficam no contexto da cultura...
PDF
PROCERGS 2015-03-25: Bad Smells em Bancos de Dados
PDF
Tutorial Database Refactoring
PDF
Software Delivery Like a Boss
PDF
NoSQL + SQL = PostgreSQL (PGDay Campinas 2014)
PDF
Oficina PostgreSQL Básico Latinoware 2012
ODP
Oficina postgresql avançado_consegi2010
ODP
Oficina postgresql basico_consegi2010
ODP
Database refactoring postgresql_consegi2010
ODP
Database Refactoring PostgreSQL Urcamp Alegrete 2009
ODP
Database Refactoring com PostgreSQL PGDay RS 2009
ODP
Refatoração Banco de Dados (Agileweekend2009)
PHP e PostgreSQL: Um é pouco, dois é bom, três é demais
Bad Smells (mal cheiros) em Bancos de Dados
URCAMP (Jun2017) - Como o papel e atividades de DBA ficam no contexto da cult...
DBA Brasil 2.0: Como o papel e atividades de DBA ficam no contexto da cultura...
PROCERGS 2015-03-25: Bad Smells em Bancos de Dados
Tutorial Database Refactoring
Software Delivery Like a Boss
NoSQL + SQL = PostgreSQL (PGDay Campinas 2014)
Oficina PostgreSQL Básico Latinoware 2012
Oficina postgresql avançado_consegi2010
Oficina postgresql basico_consegi2010
Database refactoring postgresql_consegi2010
Database Refactoring PostgreSQL Urcamp Alegrete 2009
Database Refactoring com PostgreSQL PGDay RS 2009
Refatoração Banco de Dados (Agileweekend2009)

Último (19)

PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PDF
Processos na gestão de transportes, TM100 Col18
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PDF
Apple Pippin Uma breve introdução. - David Glotz
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PPTX
Aula 18 - Manipulacao De Arquivos python
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PDF
Aula04-Academia Heri- Tecnologia Geral 2025
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Processos na gestão de transportes, TM100 Col18
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Apple Pippin Uma breve introdução. - David Glotz
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Aula 18 - Manipulacao De Arquivos python
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Custos e liquidação no SAP Transportation Management, TM130 Col18
COBITxITIL-Entenda as diferença em uso governança TI
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Aula04-Academia Heri- Tecnologia Geral 2025
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...

EXPLicando o Explain no PostgreSQL

  • 2. Estou com uma query lenta... e agora o que eu faço? ● Chamo alguém mais esperto que eu?
  • 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. 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. Então eu decidi pensar... :-) E quem optou por outro caminho... desculpe, vai ter que pensar mesmo assim...
  • 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. Ainda não sei o que fazer... Então vamos EXPLicar melhor... ;-)
  • 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. A estrutura de um “Query Plan” é nada mais que uma árvore composta de “Plan Nodes”
  • 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
  • 15. Nomenclatura Startup Cost Total Cost Estimated Rows Estimated Average Row Size (Bytes)
  • 18. Calculando custo de leitura sequencial em algumas tabelas
  • 21. Exercício ● Escolher uma query qualquer do e-cidade ● Executar o EXPLAIN e EXPLAIN ANALYZE e identificar os elementos apresentados