SlideShare a Scribd company logo
1 of 41
Download to read offline
Analise de performance usando as estatsticas do PostgreSQL 
Matheus de Oliveira 
matheus.oliveira@dextra.com.br 
* Keynote apresentada no PGDay Campinas 2014
Quem sou eu? 
Matheus de Oliveira  Ci^encias de Computac~ao { USP 
 DBA PostgreSQL na Dextra e instrutor na 
Dextraining a mais de 2 anos 
 Apaixonado pelo PG (do psql ao codigo-fonte...) 
2 / 29 
Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014
Quem sou eu? 
Matheus de Oliveira  Ci^encias de Computac~ao { USP 
 DBA PostgreSQL na Dextra e instrutor na 
Dextraining a mais de 2 anos 
 Apaixonado pelo PG (do psql ao codigo-fonte...) 
 Aplicando atualmente uso de estatsticas no 
pgAnalytics (http://pganalytics.com.br/) 
2 / 29 
Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014
Quem sou eu? 
Matheus de Oliveira  Ci^encias de Computac~ao { USP 
 DBA PostgreSQL na Dextra e instrutor na 
Dextraining a mais de 2 anos 
 Apaixonado pelo PG (do psql ao codigo-fonte...) 
 Aplicando atualmente uso de estatsticas no 
pgAnalytics (http://pganalytics.com.br/) 
Dextra  Desenvolvimento sob-medida, consultoria/suporte 
 Mais de 15 anos trabalhando com o PostgreSQL 
 Crafting Software, Transforming Business 
 http://www.dextra.com.br/ 
2 / 29 
Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014
Quem sou eu? 
Matheus de Oliveira  Ci^encias de Computac~ao { USP 
 DBA PostgreSQL na Dextra e instrutor na 
Dextraining a mais de 2 anos 
 Apaixonado pelo PG (do psql ao codigo-fonte...) 
 Aplicando atualmente uso de estatsticas no 
pgAnalytics (http://pganalytics.com.br/) 
Dextra  Desenvolvimento sob-medida, consultoria/suporte 
 Mais de 15 anos trabalhando com o PostgreSQL 
 Crafting Software, Transforming Business 
 http://www.dextra.com.br/ 
Dextraining  Treinamento de verdade, Aprenda com quem faz na 
pratica 
 Mais de 10 anos na estrada 
 Mais de 10 mil pro
ssionais capacitados em todo o 
Brasil. 
 http://www.dextraining.com.br/ 
2 / 29 
Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014
We are Hiring 
Interessados: 
recrutamento@dextra.com.br 
http://www.dextra.com.br/carreiras/
Estatsticas do PostgreSQL 
Basicamente 2 tipos de estatsticas: 
 estatsticas de distribuic~ao dos dados 
 estatsticas de analise e monitoramento 
4 / 29 
Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014
Estatsticas de distribuic~ao de 
dados
It's all about performance... 
 O PostgreSQL prov^e: 
 Mecanismos de cache e
ciente 
 Estruturas de dados e
cientes 
 Diversos metodos de acesso 
6 / 29 
Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014
It's all about performance... 
 Para isso, o PostgreSQL precisa de: 
 Mecanismos de cache e
ciente 
 Estruturas de dados e
cientes 
 Diversos metodos de acesso 
7 / 29 
Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014
It's all about performance... 
 Para isso, o PostgreSQL precisa de: 
 Mecanismos de cache e
ciente 
 voc^e precisa oferecer recursos e con
gurar para seu uso otimizado 
 Estruturas de dados e
cientes 
 Diversos metodos de acesso 
7 / 29 
Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014
It's all about performance... 
 Para isso, o PostgreSQL precisa de: 
 Mecanismos de cache e
ciente 
 voc^e precisa oferecer recursos e con
gurar para seu uso otimizado 
 Estruturas de dados e
cientes 
 voc^e precisa comandar a criac~ao dessas estruturas 
 Diversos metodos de acesso 
7 / 29 
Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014
It's all about performance... 
 Para isso, o PostgreSQL precisa de: 
 Mecanismos de cache e
ciente 
 voc^e precisa oferecer recursos e con
gurar para seu uso otimizado 
 Estruturas de dados e
cientes 
 voc^e precisa comandar a criac~ao dessas estruturas 
 Diversos metodos de acesso 
 necessario informac~oes estatsticas sobre os dados para escolha do melhor 
7 / 29 
Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014
It's all about performance... 
 Para isso, o PostgreSQL precisa de: 
 Mecanismos de cache e
ciente 
 voc^e precisa oferecer recursos e con
gurar para seu uso otimizado 
 Estruturas de dados e
cientes 
 voc^e precisa comandar a criac~ao dessas estruturas 
 Diversos metodos de acesso 
 necessario informac~oes estatsticas sobre os dados para escolha do melhor 
 voc^e geralmente n~ao precisa se preocupar com isso... :) 
7 / 29 
Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014
It's all about performance... 
 Para isso, o PostgreSQL precisa de: 
 Mecanismos de cache e
ciente 
 voc^e precisa oferecer recursos e con
gurar para seu uso otimizado 
 Estruturas de dados e
cientes 
 voc^e precisa comandar a criac~ao dessas estruturas 
 Diversos metodos de acesso 
 necessario informac~oes estatsticas sobre os dados para escolha do melhor 
 voc^e geralmente n~ao precisa se preocupar com isso... :) 
 mas as vezes precisa... : ( 
7 / 29 
Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014
Indices... Indices... Indices... 
B−tree Tabela: 
1 
8 16 28 
1 7 8 9 12 16 21 25 28 30 32 36 
28 
12 
21 
7 
9 
16 
25 
30 
32 
8 
36 
... 
... 
... 
... 
... 
... 
... 
... 
... 
... 
... 
... 
8 / 29 
Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014
Indices... Indices... Indices... 
Buscas em ndices s~ao melhores quando: 
 deseja-se encontrar um valor unico ou uma pequena faixa de 
valores 
E n~ao s~ao boas quando: 
 a busca retorna grande parte da tabela 
9 / 29 
Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014
Indices... Indices... Indices... 
Buscas em ndices s~ao melhores quando: 
 deseja-se encontrar um valor unico ou uma pequena faixa de 
valores 
E n~ao s~ao boas quando: 
 a busca retorna grande parte da tabela 
E como o PostgreSQL sabe qual a proporc~ao de uma tabela a 
consulta ira retornar? 
9 / 29 
Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014
Histogramas 
10 / 29 
Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014
Histogramas 
SELECT * FROM vendas 
WHERE dtvenda 
BETWEEN ’2013 -07 -01 ’ 
AND ’2013 -12 -31 ’; 
Pequena porc~ao da tabela 
(= 
4% da tabela): 
usar acesso indexado 
11 / 29 
Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014
Histogramas 
SELECT * FROM vendas 
WHERE dtvenda 
BETWEEN ’2014 -01 -01 ’ 
AND ’2014 -06 -31 ’; 
Grande porc~ao da tabela (= 
82% 
da tabela): 
usar acesso sequencial 
12 / 29 
Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014

More Related Content

What's hot

Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)
Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)
Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)Leinylson Fontinele
 
PostgreSQL Database Slides
PostgreSQL Database SlidesPostgreSQL Database Slides
PostgreSQL Database Slidesmetsarin
 
Boas praticas em um Projeto de Banco de Dados
Boas praticas em um Projeto de Banco de DadosBoas praticas em um Projeto de Banco de Dados
Boas praticas em um Projeto de Banco de DadosJuliano Atanazio
 
PostgreSQL Deep Internal
PostgreSQL Deep InternalPostgreSQL Deep Internal
PostgreSQL Deep InternalEXEM
 
Banco de Dados II Aula 07 - Linguagem de Consulta SQL (Comandos DDL)
Banco de Dados II Aula 07 - Linguagem de Consulta SQL (Comandos DDL)Banco de Dados II Aula 07 - Linguagem de Consulta SQL (Comandos DDL)
Banco de Dados II Aula 07 - Linguagem de Consulta SQL (Comandos DDL)Leinylson Fontinele
 
Banco de Dados II Aula 08 - Linguagem de Consulta SQL (Comandos DML)
Banco de Dados II Aula 08 - Linguagem de Consulta SQL (Comandos DML)Banco de Dados II Aula 08 - Linguagem de Consulta SQL (Comandos DML)
Banco de Dados II Aula 08 - Linguagem de Consulta SQL (Comandos DML)Leinylson Fontinele
 
Estrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisEstrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisFabrício Lopes Sanchez
 
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)Gustavo Zimmermann
 
Arquitetura de Memoria do PostgreSQL
Arquitetura de Memoria do PostgreSQLArquitetura de Memoria do PostgreSQL
Arquitetura de Memoria do PostgreSQLRaul Oliveira
 
Aula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de DadosAula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de DadosRafael Albani
 
Criação de log de ações através do banco - PostgreSQL
Criação de log de ações através do banco - PostgreSQLCriação de log de ações através do banco - PostgreSQL
Criação de log de ações através do banco - PostgreSQLMarcos Thomaz
 
[Webinar] Performance e otimização de banco de dados MySQL
[Webinar] Performance e otimização de banco de dados MySQL[Webinar] Performance e otimização de banco de dados MySQL
[Webinar] Performance e otimização de banco de dados MySQLKingHost - Hospedagem de sites
 
Banco de Dados - Introdução - Projeto de Banco de Dados - DER
Banco de Dados - Introdução - Projeto de Banco de Dados - DERBanco de Dados - Introdução - Projeto de Banco de Dados - DER
Banco de Dados - Introdução - Projeto de Banco de Dados - DERRangel Javier
 
Postgresql database administration volume 1
Postgresql database administration volume 1Postgresql database administration volume 1
Postgresql database administration volume 1Federico Campoli
 
BD I - Aula 08 B - Algebra Relacional - Exercicios Resolucao
BD I - Aula 08 B - Algebra Relacional - Exercicios ResolucaoBD I - Aula 08 B - Algebra Relacional - Exercicios Resolucao
BD I - Aula 08 B - Algebra Relacional - Exercicios ResolucaoRodrigo Kiyoshi Saito
 
Estrutura de Dados - Aula 02
Estrutura de Dados - Aula 02Estrutura de Dados - Aula 02
Estrutura de Dados - Aula 02thomasdacosta
 
Normas e Padrões para a Qualidade de Software
Normas e Padrões para a Qualidade de SoftwareNormas e Padrões para a Qualidade de Software
Normas e Padrões para a Qualidade de SoftwareDanilo Sousa
 

What's hot (20)

Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)
Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)
Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)
 
PostgreSQL Database Slides
PostgreSQL Database SlidesPostgreSQL Database Slides
PostgreSQL Database Slides
 
Boas praticas em um Projeto de Banco de Dados
Boas praticas em um Projeto de Banco de DadosBoas praticas em um Projeto de Banco de Dados
Boas praticas em um Projeto de Banco de Dados
 
PostgreSQL Deep Internal
PostgreSQL Deep InternalPostgreSQL Deep Internal
PostgreSQL Deep Internal
 
Banco de Dados II Aula 07 - Linguagem de Consulta SQL (Comandos DDL)
Banco de Dados II Aula 07 - Linguagem de Consulta SQL (Comandos DDL)Banco de Dados II Aula 07 - Linguagem de Consulta SQL (Comandos DDL)
Banco de Dados II Aula 07 - Linguagem de Consulta SQL (Comandos DDL)
 
Banco de Dados II Aula 08 - Linguagem de Consulta SQL (Comandos DML)
Banco de Dados II Aula 08 - Linguagem de Consulta SQL (Comandos DML)Banco de Dados II Aula 08 - Linguagem de Consulta SQL (Comandos DML)
Banco de Dados II Aula 08 - Linguagem de Consulta SQL (Comandos DML)
 
Estrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisEstrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentais
 
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
 
Licenças de software
Licenças de softwareLicenças de software
Licenças de software
 
Arquitetura de Memoria do PostgreSQL
Arquitetura de Memoria do PostgreSQLArquitetura de Memoria do PostgreSQL
Arquitetura de Memoria do PostgreSQL
 
Aula10 sql-ddl
Aula10 sql-ddlAula10 sql-ddl
Aula10 sql-ddl
 
Aula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de DadosAula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de Dados
 
Plano de Ensino - Bando de Dados
Plano de Ensino - Bando de DadosPlano de Ensino - Bando de Dados
Plano de Ensino - Bando de Dados
 
Criação de log de ações através do banco - PostgreSQL
Criação de log de ações através do banco - PostgreSQLCriação de log de ações através do banco - PostgreSQL
Criação de log de ações através do banco - PostgreSQL
 
[Webinar] Performance e otimização de banco de dados MySQL
[Webinar] Performance e otimização de banco de dados MySQL[Webinar] Performance e otimização de banco de dados MySQL
[Webinar] Performance e otimização de banco de dados MySQL
 
Banco de Dados - Introdução - Projeto de Banco de Dados - DER
Banco de Dados - Introdução - Projeto de Banco de Dados - DERBanco de Dados - Introdução - Projeto de Banco de Dados - DER
Banco de Dados - Introdução - Projeto de Banco de Dados - DER
 
Postgresql database administration volume 1
Postgresql database administration volume 1Postgresql database administration volume 1
Postgresql database administration volume 1
 
BD I - Aula 08 B - Algebra Relacional - Exercicios Resolucao
BD I - Aula 08 B - Algebra Relacional - Exercicios ResolucaoBD I - Aula 08 B - Algebra Relacional - Exercicios Resolucao
BD I - Aula 08 B - Algebra Relacional - Exercicios Resolucao
 
Estrutura de Dados - Aula 02
Estrutura de Dados - Aula 02Estrutura de Dados - Aula 02
Estrutura de Dados - Aula 02
 
Normas e Padrões para a Qualidade de Software
Normas e Padrões para a Qualidade de SoftwareNormas e Padrões para a Qualidade de Software
Normas e Padrões para a Qualidade de Software
 

Viewers also liked

PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoelliando dias
 
PGAnalytics - Facilitando sua vida do DBA
PGAnalytics - Facilitando sua vida do DBAPGAnalytics - Facilitando sua vida do DBA
PGAnalytics - Facilitando sua vida do DBADextra
 
O que você acha que sabe sobre banco de dados
O que você acha que sabe sobre banco de dadosO que você acha que sabe sobre banco de dados
O que você acha que sabe sobre banco de dadosMatheus de Oliveira
 
Gerenciamento de Backup e Recovery com o Barman
Gerenciamento de Backup e Recovery com o BarmanGerenciamento de Backup e Recovery com o Barman
Gerenciamento de Backup e Recovery com o BarmanCaio Oliveira
 
NoSQL + SQL = PostgreSQL (PGDay Campinas 2014)
NoSQL + SQL = PostgreSQL (PGDay Campinas 2014)NoSQL + SQL = PostgreSQL (PGDay Campinas 2014)
NoSQL + SQL = PostgreSQL (PGDay Campinas 2014)Fabrízio Mello
 
Uso de estatísticas pelo postgre sql
Uso de estatísticas pelo postgre sqlUso de estatísticas pelo postgre sql
Uso de estatísticas pelo postgre sqlLocaweb
 
PostgreSQL - Visão Geral - Pedro Vieira
PostgreSQL - Visão Geral - Pedro VieiraPostgreSQL - Visão Geral - Pedro Vieira
PostgreSQL - Visão Geral - Pedro VieiraPedro Fernandes Vieira
 
TOP5 - Falsas Suposições de Programadores
TOP5 - Falsas Suposições de ProgramadoresTOP5 - Falsas Suposições de Programadores
TOP5 - Falsas Suposições de ProgramadoresMatheus de Oliveira
 
Escrevendo códigos php seguros
Escrevendo códigos php segurosEscrevendo códigos php seguros
Escrevendo códigos php segurosDouglas V. Pasqua
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoFabio Telles Rodriguez
 
PGDay Campinas 2013 - Window Function e CTE – Surpreendente
PGDay Campinas 2013 - Window Function e CTE – SurpreendentePGDay Campinas 2013 - Window Function e CTE – Surpreendente
PGDay Campinas 2013 - Window Function e CTE – SurpreendentePGDay Campinas
 
PGDay Campinas 2013 - Mineração de Dados com MADlib
PGDay Campinas 2013 - Mineração de Dados com MADlibPGDay Campinas 2013 - Mineração de Dados com MADlib
PGDay Campinas 2013 - Mineração de Dados com MADlibPGDay Campinas
 
Jaime Casanova - Domando a la bestia Replicación
Jaime Casanova - Domando a la bestia ReplicaciónJaime Casanova - Domando a la bestia Replicación
Jaime Casanova - Domando a la bestia ReplicaciónPGDay Campinas
 
Palestra Diogo Rubert - PGDAY Campinas 2015
Palestra Diogo Rubert - PGDAY Campinas 2015Palestra Diogo Rubert - PGDAY Campinas 2015
Palestra Diogo Rubert - PGDAY Campinas 2015Diogo L. V. G. Rubert
 
CASE: O PostgreSQL em BI: Milhares de operações diárias consolidadas em "near...
CASE: O PostgreSQL em BI: Milhares de operações diárias consolidadas em "near...CASE: O PostgreSQL em BI: Milhares de operações diárias consolidadas em "near...
CASE: O PostgreSQL em BI: Milhares de operações diárias consolidadas em "near...PGDay Campinas
 
PGDay Campinas 2013 - PL/pg…ETL – Transformação de dados para DW e BI usando ...
PGDay Campinas 2013 - PL/pg…ETL – Transformação de dados para DW e BI usando ...PGDay Campinas 2013 - PL/pg…ETL – Transformação de dados para DW e BI usando ...
PGDay Campinas 2013 - PL/pg…ETL – Transformação de dados para DW e BI usando ...PGDay Campinas
 

Viewers also liked (20)

PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardo
 
PGAnalytics - Facilitando sua vida do DBA
PGAnalytics - Facilitando sua vida do DBAPGAnalytics - Facilitando sua vida do DBA
PGAnalytics - Facilitando sua vida do DBA
 
O que você acha que sabe sobre banco de dados
O que você acha que sabe sobre banco de dadosO que você acha que sabe sobre banco de dados
O que você acha que sabe sobre banco de dados
 
Gerenciamento de Backup e Recovery com o Barman
Gerenciamento de Backup e Recovery com o BarmanGerenciamento de Backup e Recovery com o Barman
Gerenciamento de Backup e Recovery com o Barman
 
NoSQL + SQL = PostgreSQL (PGDay Campinas 2014)
NoSQL + SQL = PostgreSQL (PGDay Campinas 2014)NoSQL + SQL = PostgreSQL (PGDay Campinas 2014)
NoSQL + SQL = PostgreSQL (PGDay Campinas 2014)
 
Uso de estatísticas pelo postgre sql
Uso de estatísticas pelo postgre sqlUso de estatísticas pelo postgre sql
Uso de estatísticas pelo postgre sql
 
PostgreSQL - Visão Geral - Pedro Vieira
PostgreSQL - Visão Geral - Pedro VieiraPostgreSQL - Visão Geral - Pedro Vieira
PostgreSQL - Visão Geral - Pedro Vieira
 
TOP5 - Falsas Suposições de Programadores
TOP5 - Falsas Suposições de ProgramadoresTOP5 - Falsas Suposições de Programadores
TOP5 - Falsas Suposições de Programadores
 
Escrevendo códigos php seguros
Escrevendo códigos php segurosEscrevendo códigos php seguros
Escrevendo códigos php seguros
 
Segurança Web com PHP5
Segurança Web com PHP5Segurança Web com PHP5
Segurança Web com PHP5
 
Postgres Tuning
Postgres TuningPostgres Tuning
Postgres Tuning
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardo
 
PGDay Campinas 2013 - Window Function e CTE – Surpreendente
PGDay Campinas 2013 - Window Function e CTE – SurpreendentePGDay Campinas 2013 - Window Function e CTE – Surpreendente
PGDay Campinas 2013 - Window Function e CTE – Surpreendente
 
PGDay Campinas 2013 - Mineração de Dados com MADlib
PGDay Campinas 2013 - Mineração de Dados com MADlibPGDay Campinas 2013 - Mineração de Dados com MADlib
PGDay Campinas 2013 - Mineração de Dados com MADlib
 
Pgday campinas 2015
Pgday campinas 2015Pgday campinas 2015
Pgday campinas 2015
 
Jaime Casanova - Domando a la bestia Replicación
Jaime Casanova - Domando a la bestia ReplicaciónJaime Casanova - Domando a la bestia Replicación
Jaime Casanova - Domando a la bestia Replicación
 
Palestra Diogo Rubert - PGDAY Campinas 2015
Palestra Diogo Rubert - PGDAY Campinas 2015Palestra Diogo Rubert - PGDAY Campinas 2015
Palestra Diogo Rubert - PGDAY Campinas 2015
 
pgDay Campinas – 2015
pgDay Campinas – 2015pgDay Campinas – 2015
pgDay Campinas – 2015
 
CASE: O PostgreSQL em BI: Milhares de operações diárias consolidadas em "near...
CASE: O PostgreSQL em BI: Milhares de operações diárias consolidadas em "near...CASE: O PostgreSQL em BI: Milhares de operações diárias consolidadas em "near...
CASE: O PostgreSQL em BI: Milhares de operações diárias consolidadas em "near...
 
PGDay Campinas 2013 - PL/pg…ETL – Transformação de dados para DW e BI usando ...
PGDay Campinas 2013 - PL/pg…ETL – Transformação de dados para DW e BI usando ...PGDay Campinas 2013 - PL/pg…ETL – Transformação de dados para DW e BI usando ...
PGDay Campinas 2013 - PL/pg…ETL – Transformação de dados para DW e BI usando ...
 

Similar to Análise de performance usando as estatísticas do PostgreSQL

Postgresql como NewSQL - DevCamp 2014
Postgresql como NewSQL - DevCamp 2014Postgresql como NewSQL - DevCamp 2014
Postgresql como NewSQL - DevCamp 2014Matheus de Oliveira
 
Data Mining e Machine Learning com Python - Mateus Grellert - Tchelinux Pelot...
Data Mining e Machine Learning com Python - Mateus Grellert - Tchelinux Pelot...Data Mining e Machine Learning com Python - Mateus Grellert - Tchelinux Pelot...
Data Mining e Machine Learning com Python - Mateus Grellert - Tchelinux Pelot...Tchelinux
 
Machine Learning e Artificial Intelligence para desenvolvedores .NET
Machine Learning e Artificial Intelligence para desenvolvedores .NETMachine Learning e Artificial Intelligence para desenvolvedores .NET
Machine Learning e Artificial Intelligence para desenvolvedores .NETRenato Haddad
 
Seleção de Features para Ranking
Seleção de Features para RankingSeleção de Features para Ranking
Seleção de Features para Rankingcristnascimento
 
Business Analytics com Tableau Qmeeting 2018
Business Analytics com Tableau Qmeeting 2018Business Analytics com Tableau Qmeeting 2018
Business Analytics com Tableau Qmeeting 2018Roberto Oliveira
 
O que eu deveria saber antes de testar performance?
O que eu deveria saber antes de testar performance?O que eu deveria saber antes de testar performance?
O que eu deveria saber antes de testar performance?Ariane Izac
 
Otimizando suas querys no postgreSQL
Otimizando suas querys no postgreSQLOtimizando suas querys no postgreSQL
Otimizando suas querys no postgreSQLJean Pierre Monteiro
 
Ténicas de Database Refactoring para ambientes 24x7
Ténicas de Database Refactoring para ambientes 24x7Ténicas de Database Refactoring para ambientes 24x7
Ténicas de Database Refactoring para ambientes 24x7Matheus de Oliveira
 
O que eu deveria saber antes de testar performance?
O que eu deveria saber antes de testar performance?O que eu deveria saber antes de testar performance?
O que eu deveria saber antes de testar performance?Ariane Izac
 
5 dicas para estruturar seu teste de performance
5 dicas para estruturar seu teste de performance5 dicas para estruturar seu teste de performance
5 dicas para estruturar seu teste de performanceAriane Izac
 
Business intelligence x Datamining
Business intelligence x DataminingBusiness intelligence x Datamining
Business intelligence x DataminingLeonardo Holanda
 
Ambiente de recomendação de índices para bancos de dados MySQL
Ambiente de recomendação de índices para bancos de dados MySQLAmbiente de recomendação de índices para bancos de dados MySQL
Ambiente de recomendação de índices para bancos de dados MySQLEduardo Weiland
 
Proposta de projeto: Aplicando Ciência de Dados a livraria Iztaccihuatl
Proposta de projeto: Aplicando Ciência de Dados a livraria IztaccihuatlProposta de projeto: Aplicando Ciência de Dados a livraria Iztaccihuatl
Proposta de projeto: Aplicando Ciência de Dados a livraria Iztaccihuatlsusilene Barbosa
 
Bancos de dados analíticos open source
Bancos de dados analíticos open sourceBancos de dados analíticos open source
Bancos de dados analíticos open sourceMatheus Espanhol
 

Similar to Análise de performance usando as estatísticas do PostgreSQL (20)

Postgresql como NewSQL - DevCamp 2014
Postgresql como NewSQL - DevCamp 2014Postgresql como NewSQL - DevCamp 2014
Postgresql como NewSQL - DevCamp 2014
 
Data Mining e Machine Learning com Python - Mateus Grellert - Tchelinux Pelot...
Data Mining e Machine Learning com Python - Mateus Grellert - Tchelinux Pelot...Data Mining e Machine Learning com Python - Mateus Grellert - Tchelinux Pelot...
Data Mining e Machine Learning com Python - Mateus Grellert - Tchelinux Pelot...
 
Machine Learning e Artificial Intelligence para desenvolvedores .NET
Machine Learning e Artificial Intelligence para desenvolvedores .NETMachine Learning e Artificial Intelligence para desenvolvedores .NET
Machine Learning e Artificial Intelligence para desenvolvedores .NET
 
Seleção de Features para Ranking
Seleção de Features para RankingSeleção de Features para Ranking
Seleção de Features para Ranking
 
Computacao
ComputacaoComputacao
Computacao
 
Business Analytics com Tableau Qmeeting 2018
Business Analytics com Tableau Qmeeting 2018Business Analytics com Tableau Qmeeting 2018
Business Analytics com Tableau Qmeeting 2018
 
Medindo O Desempenho De Processadores
Medindo O Desempenho De ProcessadoresMedindo O Desempenho De Processadores
Medindo O Desempenho De Processadores
 
O que eu deveria saber antes de testar performance?
O que eu deveria saber antes de testar performance?O que eu deveria saber antes de testar performance?
O que eu deveria saber antes de testar performance?
 
Otimizando suas querys no postgreSQL
Otimizando suas querys no postgreSQLOtimizando suas querys no postgreSQL
Otimizando suas querys no postgreSQL
 
Ténicas de Database Refactoring para ambientes 24x7
Ténicas de Database Refactoring para ambientes 24x7Ténicas de Database Refactoring para ambientes 24x7
Ténicas de Database Refactoring para ambientes 24x7
 
Aula02
Aula02Aula02
Aula02
 
O que eu deveria saber antes de testar performance?
O que eu deveria saber antes de testar performance?O que eu deveria saber antes de testar performance?
O que eu deveria saber antes de testar performance?
 
5 dicas para estruturar seu teste de performance
5 dicas para estruturar seu teste de performance5 dicas para estruturar seu teste de performance
5 dicas para estruturar seu teste de performance
 
Business intelligence x Datamining
Business intelligence x DataminingBusiness intelligence x Datamining
Business intelligence x Datamining
 
Ambiente de recomendação de índices para bancos de dados MySQL
Ambiente de recomendação de índices para bancos de dados MySQLAmbiente de recomendação de índices para bancos de dados MySQL
Ambiente de recomendação de índices para bancos de dados MySQL
 
Dfd
DfdDfd
Dfd
 
Proposta de projeto: Aplicando Ciência de Dados a livraria Iztaccihuatl
Proposta de projeto: Aplicando Ciência de Dados a livraria IztaccihuatlProposta de projeto: Aplicando Ciência de Dados a livraria Iztaccihuatl
Proposta de projeto: Aplicando Ciência de Dados a livraria Iztaccihuatl
 
O ambiente PSPP
O ambiente PSPPO ambiente PSPP
O ambiente PSPP
 
Estatísticas | Oracle | 2015
Estatísticas | Oracle | 2015Estatísticas | Oracle | 2015
Estatísticas | Oracle | 2015
 
Bancos de dados analíticos open source
Bancos de dados analíticos open sourceBancos de dados analíticos open source
Bancos de dados analíticos open source
 

Recently uploaded

Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Dirceu Resende
 
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Dirceu Resende
 
Knowtree - Extração de Dados com o KAPE.
Knowtree - Extração de Dados com o KAPE.Knowtree - Extração de Dados com o KAPE.
Knowtree - Extração de Dados com o KAPE.Thiago lindolfo
 
O papel da automação de processos no mundo do trabalho pós-moderno
O papel da automação de processos no mundo do trabalho pós-modernoO papel da automação de processos no mundo do trabalho pós-moderno
O papel da automação de processos no mundo do trabalho pós-modernoDenis Pereira Raymundo
 
TI EXAMES - NIST Cybersecurity Framework.pdf
TI EXAMES - NIST Cybersecurity Framework.pdfTI EXAMES - NIST Cybersecurity Framework.pdf
TI EXAMES - NIST Cybersecurity Framework.pdfRodrigoMori7
 
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Dirceu Resende
 
PRODUCT OPS - COMO APROVEITAR O MÁXIMO DESTA NOVA TENDÊNCIA - Priscila Chagas...
PRODUCT OPS - COMO APROVEITAR O MÁXIMO DESTA NOVA TENDÊNCIA - Priscila Chagas...PRODUCT OPS - COMO APROVEITAR O MÁXIMO DESTA NOVA TENDÊNCIA - Priscila Chagas...
PRODUCT OPS - COMO APROVEITAR O MÁXIMO DESTA NOVA TENDÊNCIA - Priscila Chagas...Priscila Ribeiro Chagas
 

Recently uploaded (7)

Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
 
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
 
Knowtree - Extração de Dados com o KAPE.
Knowtree - Extração de Dados com o KAPE.Knowtree - Extração de Dados com o KAPE.
Knowtree - Extração de Dados com o KAPE.
 
O papel da automação de processos no mundo do trabalho pós-moderno
O papel da automação de processos no mundo do trabalho pós-modernoO papel da automação de processos no mundo do trabalho pós-moderno
O papel da automação de processos no mundo do trabalho pós-moderno
 
TI EXAMES - NIST Cybersecurity Framework.pdf
TI EXAMES - NIST Cybersecurity Framework.pdfTI EXAMES - NIST Cybersecurity Framework.pdf
TI EXAMES - NIST Cybersecurity Framework.pdf
 
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
 
PRODUCT OPS - COMO APROVEITAR O MÁXIMO DESTA NOVA TENDÊNCIA - Priscila Chagas...
PRODUCT OPS - COMO APROVEITAR O MÁXIMO DESTA NOVA TENDÊNCIA - Priscila Chagas...PRODUCT OPS - COMO APROVEITAR O MÁXIMO DESTA NOVA TENDÊNCIA - Priscila Chagas...
PRODUCT OPS - COMO APROVEITAR O MÁXIMO DESTA NOVA TENDÊNCIA - Priscila Chagas...
 

Análise de performance usando as estatísticas do PostgreSQL

  • 1. Analise de performance usando as estatsticas do PostgreSQL Matheus de Oliveira matheus.oliveira@dextra.com.br * Keynote apresentada no PGDay Campinas 2014
  • 2. Quem sou eu? Matheus de Oliveira Ci^encias de Computac~ao { USP DBA PostgreSQL na Dextra e instrutor na Dextraining a mais de 2 anos Apaixonado pelo PG (do psql ao codigo-fonte...) 2 / 29 Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014
  • 3. Quem sou eu? Matheus de Oliveira Ci^encias de Computac~ao { USP DBA PostgreSQL na Dextra e instrutor na Dextraining a mais de 2 anos Apaixonado pelo PG (do psql ao codigo-fonte...) Aplicando atualmente uso de estatsticas no pgAnalytics (http://pganalytics.com.br/) 2 / 29 Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014
  • 4. Quem sou eu? Matheus de Oliveira Ci^encias de Computac~ao { USP DBA PostgreSQL na Dextra e instrutor na Dextraining a mais de 2 anos Apaixonado pelo PG (do psql ao codigo-fonte...) Aplicando atualmente uso de estatsticas no pgAnalytics (http://pganalytics.com.br/) Dextra Desenvolvimento sob-medida, consultoria/suporte Mais de 15 anos trabalhando com o PostgreSQL Crafting Software, Transforming Business http://www.dextra.com.br/ 2 / 29 Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014
  • 5. Quem sou eu? Matheus de Oliveira Ci^encias de Computac~ao { USP DBA PostgreSQL na Dextra e instrutor na Dextraining a mais de 2 anos Apaixonado pelo PG (do psql ao codigo-fonte...) Aplicando atualmente uso de estatsticas no pgAnalytics (http://pganalytics.com.br/) Dextra Desenvolvimento sob-medida, consultoria/suporte Mais de 15 anos trabalhando com o PostgreSQL Crafting Software, Transforming Business http://www.dextra.com.br/ Dextraining Treinamento de verdade, Aprenda com quem faz na pratica Mais de 10 anos na estrada Mais de 10 mil pro
  • 6. ssionais capacitados em todo o Brasil. http://www.dextraining.com.br/ 2 / 29 Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014
  • 7. We are Hiring Interessados: recrutamento@dextra.com.br http://www.dextra.com.br/carreiras/
  • 8. Estatsticas do PostgreSQL Basicamente 2 tipos de estatsticas: estatsticas de distribuic~ao dos dados estatsticas de analise e monitoramento 4 / 29 Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014
  • 10. It's all about performance... O PostgreSQL prov^e: Mecanismos de cache e
  • 11. ciente Estruturas de dados e
  • 12. cientes Diversos metodos de acesso 6 / 29 Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014
  • 13. It's all about performance... Para isso, o PostgreSQL precisa de: Mecanismos de cache e
  • 14. ciente Estruturas de dados e
  • 15. cientes Diversos metodos de acesso 7 / 29 Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014
  • 16. It's all about performance... Para isso, o PostgreSQL precisa de: Mecanismos de cache e
  • 17. ciente voc^e precisa oferecer recursos e con
  • 18. gurar para seu uso otimizado Estruturas de dados e
  • 19. cientes Diversos metodos de acesso 7 / 29 Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014
  • 20. It's all about performance... Para isso, o PostgreSQL precisa de: Mecanismos de cache e
  • 21. ciente voc^e precisa oferecer recursos e con
  • 22. gurar para seu uso otimizado Estruturas de dados e
  • 23. cientes voc^e precisa comandar a criac~ao dessas estruturas Diversos metodos de acesso 7 / 29 Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014
  • 24. It's all about performance... Para isso, o PostgreSQL precisa de: Mecanismos de cache e
  • 25. ciente voc^e precisa oferecer recursos e con
  • 26. gurar para seu uso otimizado Estruturas de dados e
  • 27. cientes voc^e precisa comandar a criac~ao dessas estruturas Diversos metodos de acesso necessario informac~oes estatsticas sobre os dados para escolha do melhor 7 / 29 Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014
  • 28. It's all about performance... Para isso, o PostgreSQL precisa de: Mecanismos de cache e
  • 29. ciente voc^e precisa oferecer recursos e con
  • 30. gurar para seu uso otimizado Estruturas de dados e
  • 31. cientes voc^e precisa comandar a criac~ao dessas estruturas Diversos metodos de acesso necessario informac~oes estatsticas sobre os dados para escolha do melhor voc^e geralmente n~ao precisa se preocupar com isso... :) 7 / 29 Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014
  • 32. It's all about performance... Para isso, o PostgreSQL precisa de: Mecanismos de cache e
  • 33. ciente voc^e precisa oferecer recursos e con
  • 34. gurar para seu uso otimizado Estruturas de dados e
  • 35. cientes voc^e precisa comandar a criac~ao dessas estruturas Diversos metodos de acesso necessario informac~oes estatsticas sobre os dados para escolha do melhor voc^e geralmente n~ao precisa se preocupar com isso... :) mas as vezes precisa... : ( 7 / 29 Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014
  • 36. Indices... Indices... Indices... B−tree Tabela: 1 8 16 28 1 7 8 9 12 16 21 25 28 30 32 36 28 12 21 7 9 16 25 30 32 8 36 ... ... ... ... ... ... ... ... ... ... ... ... 8 / 29 Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014
  • 37. Indices... Indices... Indices... Buscas em ndices s~ao melhores quando: deseja-se encontrar um valor unico ou uma pequena faixa de valores E n~ao s~ao boas quando: a busca retorna grande parte da tabela 9 / 29 Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014
  • 38. Indices... Indices... Indices... Buscas em ndices s~ao melhores quando: deseja-se encontrar um valor unico ou uma pequena faixa de valores E n~ao s~ao boas quando: a busca retorna grande parte da tabela E como o PostgreSQL sabe qual a proporc~ao de uma tabela a consulta ira retornar? 9 / 29 Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014
  • 39. Histogramas 10 / 29 Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014
  • 40. Histogramas SELECT * FROM vendas WHERE dtvenda BETWEEN ’2013 -07 -01 ’ AND ’2013 -12 -31 ’; Pequena porc~ao da tabela (= 4% da tabela): usar acesso indexado 11 / 29 Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014
  • 41. Histogramas SELECT * FROM vendas WHERE dtvenda BETWEEN ’2014 -01 -01 ’ AND ’2014 -06 -31 ’; Grande porc~ao da tabela (= 82% da tabela): usar acesso sequencial 12 / 29 Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014
  • 42. Outras Informac~oes Alem dos histogramas { pg stats.histogram bounds 1 {, s~ao armazenadas outras estatsticas, como: Seletividade dos atributos (numero de elementos distintos) { pg stats.n distinct Correlac~ao dos atributos (ordenac~ao fsica) { pg stats.correlation Atributos mais comuns { pg stats.most common * Media de tamanho dos atributos { pg stats.avg width Entre outras... 1OBS: o histograma do PostgreSQL e um pouco diferente do apresentado aqui, mas segue a mesma ideia 13 / 29 Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014
  • 43. Estatsticas do PostgreSQL Estatsticas da distribuic~ao dos dados: 14 / 29 Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014
  • 44. Estatsticas do PostgreSQL Estatsticas da distribuic~ao dos dados: s~ao atualizadas sob demanda pelo autovacuum (voc^e n~ao precisa fazer isso) armazenadas na tabela de catalogo pg statistic (use a view pg stats para consultar) utilizadas pelo planejador de consultas se
  • 45. carem desatualizadas podem degradar a performance do sistema drasticamente 14 / 29 Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014
  • 46. Estatsticas para Analise e Monitoramento
  • 47. Estatsticas para Analise e Monitoramento Durante operac~ao, os processos incrementam contadores e medidores de tempo das operac~oes realizadas (numero de tuplas inseridas numa tabela, tempo de escrita dos dados em disco, utilizac~ao de um ndice, etc.) Cada processo envia essas informac~oes via comunicac~ao UDP para o stats collector O stats collector armazena esses dados em estruturas especiais O resultado sumarizado dessas informac~oes est~ao presentes para consulta em views especiais, nomeadas pg stat * e pg statio * 16 / 29 Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014
  • 48. Veri
  • 49. cac~ao do uso de memoria Veri
  • 50. cac~ao de uso de cache pela pg stat database: = SELECT sum ( blks_hit ) / - sum (( blks_read + blks_hit ):: numeric ) - FROM pg_stat_database - WHERE blks_read + blks_hit 0; cache_ratio -- ---------------------- 0.73245583731133246875 (1 row ) Valores muito baixo podem indicar pouca memoria para shared buffers 17 / 29 Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014
  • 51. Veri
  • 52. cac~ao do processo de CHECKPOINTs Veri
  • 53. cando escrita de buers pelo processo checkpointer VS backends pg stat bgwriter: = SELECT buffers_checkpoint / - ( buffers_checkpoint + buffers_backend ) - :: numeric AS checkpointer_ratio - FROM pg_stat_bgwriter ; checkpointer_ratio -- ------------------ 0.923462373 (1 row ) Buscamos um valor mais alto (sendo 1; 0 a taxa ideal), valores proximos a 0; 0 podem indicar a necessidade de forcar mais CHECKPOINTs ou aumentar a shared buffers 18 / 29 Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014
  • 54. Veri
  • 55. cac~ao do processo de CHECKPOINT Veri
  • 56. cac~ao das requisic~oes de CHECKPOINT pela pg stat bgwriter: = SELECT checkpoints_timed / - ( checkpoints_timed + checkpoints_req ) - :: numeric AS timed_ratio - FROM pg_stat_bgwriter ; timed_ratio -- ----------- 0.769053117 (1 row ) Tambem buscamos taxas proximas a 1; 0, sendo que valores muito baixos podem indicar necessidade de aumento do par^ametro checkpoint segments ou reduc~ao do checkpoint timeout 19 / 29 Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014
  • 57. Utilizac~ao de Arquivos Temporarios Tambem utilizando a pg stat database, podemos ver o tamanho de arquivos temporarios gerados: = SELECT pg_size_pretty (sum ( temp_bytes )) - AS size - FROM pg_stat_database ; size -- ------- 2500 MB (1 row ) Utilizac~ao de arquivos temporarios degenera a performance, pode ser preciso aumentar o work mem 20 / 29 Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014
  • 58. Veri
  • 59. cac~ao de Tabelas com Muito Seq-Scans Usando a vis~ao pg stat user tables: = SELECT relname , seq_scan , idx_scan - FROM pg_stat_user_tables - ORDER BY seq_scan DESC LIMIT 10; relname | seq_scan | idx_scan -- -------+----------+---------- vendas | 5586 | 0 cidades | 84 | 826 ... Que tal olhar com carinho as consultas dessas tabelas? Mas lembre-se, para tabelas pequenas ou consultas que trazem grandes porc~oes da tabela seq-scan n~ao e ruim 21 / 29 Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014
  • 60. Veri
  • 61. cac~ao de Indices N~ao Utilizados Para informac~oes de ndices espec
  • 62. cos usamos a pg stat user indexes: = SELECT relname , indexrelname - FROM pg_stat_user_indexes - WHERE idx_scan = 0; relname | indexrelname -- -------+-------------------- vendas | vendas_total_idx vendas | vendas_empresa_idx ... Indices n~ao utilizados, muitas vezes podem ser removidos. Mas nem sempre! 22 / 29 Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014
  • 63. Nem tudo s~ao ores... Como fazer a analise dessas estatsticas apenas num dado perodo? 23 / 29 Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014
  • 64. Nem tudo s~ao ores... Como fazer a analise dessas estatsticas apenas num dado perodo? Elas s~ao incrementais, logo englobam um grande perodo de tempo: = SELECT stats_reset FROM pg_stat_database - WHERE datname = current_database (); stats_reset -- ----------------------------- 2014 -04 -28 01:56:51.790651 -03 (1 row) 23 / 29 Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014
  • 65. Reinicializac~ao das Estatsticas Estatsticas s~ao zeradas quando: uma queda do sistema acontece (ou stop immediate e usado) e feita a chamada das func~oes pg stat reset e pg stat reset shared 24 / 29 Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014
  • 66. Reinicializac~ao das Estatsticas Estatsticas s~ao zeradas quando: uma queda do sistema acontece (ou stop immediate e usado) e feita a chamada das func~oes pg stat reset e pg stat reset shared Reiniciar as estatsticas inviabiliza a operac~ao plena do autovacuum 24 / 29 Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014
  • 67. Soluc~oes... Salvar snapshot de estatsticas: = CREATE TABLE stat_bgwriter_20140910 - AS SELECT * FROM pg_stat_bgwriter ; = CREATE TABLE stat_database_20140910 - AS SELECT * FROM pg_stat_database ; 25 / 29 Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014
  • 68. Soluc~oes... Apenas essas estatsticas n~ao v~ao ser su
  • 70. cac~ao dos comandos SQL executados no banco de dados: buscar consultas direto da aplicac~ao :/ modulo pg stat statement uso de analise de logs (pg log/) Informac~oes historicas (snapshots, gra
  • 71. cos, etc.) Controle das alterac~oes realizadas no ambiente 26 / 29 Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014
  • 73. Resumo das Estatsticas pg statistic pg stat * / pg statio * Quem? manualmente autovacuum todos os processos Quando? manualmente sob-demanda o tempo todo Como? INSERT, UPDATE, DELETE UDP para o stats collector Onde? tabela pg statistic arquivo(s) no diretorio $PGDATA/pg stat Pra qu^e? planejador de consul-tas autovacuum, monitoramento, analise 28 / 29 Analise de performance usando as estatsticas do PostgreSQL { Matheus de Oliveira { PGDay Campinas 2014
  • 74. Obrigado! Duvidas? Matheus de Oliveira matheus.oliveira@dextra.com.br IRC { irc.freenode.net: /join #postgresql,#postgresql-br,#dextra Meu nick: MatheusOl Twitter: @matioli matheus LinkedIn: br.linkedin.com/in/matheusdeoliveira/ SlideShare: slideshare.net/matheus de oliveira