SlideShare uma empresa Scribd logo
1 de 41
Baixar para ler 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

Mais conteúdo relacionado

Mais procurados

Real-Time Forecasting at Scale using Delta Lake and Delta Caching
Real-Time Forecasting at Scale using Delta Lake and Delta CachingReal-Time Forecasting at Scale using Delta Lake and Delta Caching
Real-Time Forecasting at Scale using Delta Lake and Delta CachingDatabricks
 
EXPLicando o Explain no PostgreSQL
EXPLicando o Explain no PostgreSQLEXPLicando o Explain no PostgreSQL
EXPLicando o Explain no PostgreSQLFabrízio Mello
 
The Art of Database Experiments – PostgresConf Silicon Valley 2018 / San Jose
The Art of Database Experiments – PostgresConf Silicon Valley 2018 / San JoseThe Art of Database Experiments – PostgresConf Silicon Valley 2018 / San Jose
The Art of Database Experiments – PostgresConf Silicon Valley 2018 / San JoseNikolay Samokhvalov
 
Arquitetura de Memoria do PostgreSQL
Arquitetura de Memoria do PostgreSQLArquitetura de Memoria do PostgreSQL
Arquitetura de Memoria do PostgreSQLRaul Oliveira
 
PostgreSQL- An Introduction
PostgreSQL- An IntroductionPostgreSQL- An Introduction
PostgreSQL- An IntroductionSmita Prasad
 
PostgreSQL Deep Internal
PostgreSQL Deep InternalPostgreSQL Deep Internal
PostgreSQL Deep InternalEXEM
 
Replicação Lógica no PostgreSQL 10
Replicação Lógica no PostgreSQL 10Replicação Lógica no PostgreSQL 10
Replicação Lógica no PostgreSQL 10Euler Taveira
 
Histograms in MariaDB, MySQL and PostgreSQL
Histograms in MariaDB, MySQL and PostgreSQLHistograms in MariaDB, MySQL and PostgreSQL
Histograms in MariaDB, MySQL and PostgreSQLSergey Petrunya
 
Improving SparkSQL Performance by 30%: How We Optimize Parquet Pushdown and P...
Improving SparkSQL Performance by 30%: How We Optimize Parquet Pushdown and P...Improving SparkSQL Performance by 30%: How We Optimize Parquet Pushdown and P...
Improving SparkSQL Performance by 30%: How We Optimize Parquet Pushdown and P...Databricks
 
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
 
Presto: Optimizing Performance of SQL-on-Anything Engine
Presto: Optimizing Performance of SQL-on-Anything EnginePresto: Optimizing Performance of SQL-on-Anything Engine
Presto: Optimizing Performance of SQL-on-Anything EngineDataWorks Summit
 
Troubleshooting PostgreSQL Streaming Replication
Troubleshooting PostgreSQL Streaming ReplicationTroubleshooting PostgreSQL Streaming Replication
Troubleshooting PostgreSQL Streaming ReplicationAlexey Lesovsky
 
Fine Tuning and Enhancing Performance of Apache Spark Jobs
Fine Tuning and Enhancing Performance of Apache Spark JobsFine Tuning and Enhancing Performance of Apache Spark Jobs
Fine Tuning and Enhancing Performance of Apache Spark JobsDatabricks
 
Strata NY 2018: The deconstructed database
Strata NY 2018: The deconstructed databaseStrata NY 2018: The deconstructed database
Strata NY 2018: The deconstructed databaseJulien Le Dem
 
Deep dive into PostgreSQL statistics.
Deep dive into PostgreSQL statistics.Deep dive into PostgreSQL statistics.
Deep dive into PostgreSQL statistics.Alexey Lesovsky
 
Building Reliable Lakehouses with Apache Flink and Delta Lake
Building Reliable Lakehouses with Apache Flink and Delta LakeBuilding Reliable Lakehouses with Apache Flink and Delta Lake
Building Reliable Lakehouses with Apache Flink and Delta LakeFlink Forward
 
Apache Spark Core – Practical Optimization
Apache Spark Core – Practical OptimizationApache Spark Core – Practical Optimization
Apache Spark Core – Practical OptimizationDatabricks
 
PGDAY FR 2014 : presentation de Postgresql chez leboncoin.fr
PGDAY FR 2014 : presentation de Postgresql chez leboncoin.frPGDAY FR 2014 : presentation de Postgresql chez leboncoin.fr
PGDAY FR 2014 : presentation de Postgresql chez leboncoin.frjlb666
 
2022-06-23 Apache Arrow and DataFusion_ Changing the Game for implementing Da...
2022-06-23 Apache Arrow and DataFusion_ Changing the Game for implementing Da...2022-06-23 Apache Arrow and DataFusion_ Changing the Game for implementing Da...
2022-06-23 Apache Arrow and DataFusion_ Changing the Game for implementing Da...Andrew Lamb
 

Mais procurados (20)

Real-Time Forecasting at Scale using Delta Lake and Delta Caching
Real-Time Forecasting at Scale using Delta Lake and Delta CachingReal-Time Forecasting at Scale using Delta Lake and Delta Caching
Real-Time Forecasting at Scale using Delta Lake and Delta Caching
 
EXPLicando o Explain no PostgreSQL
EXPLicando o Explain no PostgreSQLEXPLicando o Explain no PostgreSQL
EXPLicando o Explain no PostgreSQL
 
The Art of Database Experiments – PostgresConf Silicon Valley 2018 / San Jose
The Art of Database Experiments – PostgresConf Silicon Valley 2018 / San JoseThe Art of Database Experiments – PostgresConf Silicon Valley 2018 / San Jose
The Art of Database Experiments – PostgresConf Silicon Valley 2018 / San Jose
 
Arquitetura de Memoria do PostgreSQL
Arquitetura de Memoria do PostgreSQLArquitetura de Memoria do PostgreSQL
Arquitetura de Memoria do PostgreSQL
 
PostgreSQL- An Introduction
PostgreSQL- An IntroductionPostgreSQL- An Introduction
PostgreSQL- An Introduction
 
PostgreSQL Deep Internal
PostgreSQL Deep InternalPostgreSQL Deep Internal
PostgreSQL Deep Internal
 
Replicação Lógica no PostgreSQL 10
Replicação Lógica no PostgreSQL 10Replicação Lógica no PostgreSQL 10
Replicação Lógica no PostgreSQL 10
 
Histograms in MariaDB, MySQL and PostgreSQL
Histograms in MariaDB, MySQL and PostgreSQLHistograms in MariaDB, MySQL and PostgreSQL
Histograms in MariaDB, MySQL and PostgreSQL
 
Improving SparkSQL Performance by 30%: How We Optimize Parquet Pushdown and P...
Improving SparkSQL Performance by 30%: How We Optimize Parquet Pushdown and P...Improving SparkSQL Performance by 30%: How We Optimize Parquet Pushdown and P...
Improving SparkSQL Performance by 30%: How We Optimize Parquet Pushdown and P...
 
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
 
Presto: Optimizing Performance of SQL-on-Anything Engine
Presto: Optimizing Performance of SQL-on-Anything EnginePresto: Optimizing Performance of SQL-on-Anything Engine
Presto: Optimizing Performance of SQL-on-Anything Engine
 
Troubleshooting PostgreSQL Streaming Replication
Troubleshooting PostgreSQL Streaming ReplicationTroubleshooting PostgreSQL Streaming Replication
Troubleshooting PostgreSQL Streaming Replication
 
Fine Tuning and Enhancing Performance of Apache Spark Jobs
Fine Tuning and Enhancing Performance of Apache Spark JobsFine Tuning and Enhancing Performance of Apache Spark Jobs
Fine Tuning and Enhancing Performance of Apache Spark Jobs
 
Strata NY 2018: The deconstructed database
Strata NY 2018: The deconstructed databaseStrata NY 2018: The deconstructed database
Strata NY 2018: The deconstructed database
 
PostgreSQL and RAM usage
PostgreSQL and RAM usagePostgreSQL and RAM usage
PostgreSQL and RAM usage
 
Deep dive into PostgreSQL statistics.
Deep dive into PostgreSQL statistics.Deep dive into PostgreSQL statistics.
Deep dive into PostgreSQL statistics.
 
Building Reliable Lakehouses with Apache Flink and Delta Lake
Building Reliable Lakehouses with Apache Flink and Delta LakeBuilding Reliable Lakehouses with Apache Flink and Delta Lake
Building Reliable Lakehouses with Apache Flink and Delta Lake
 
Apache Spark Core – Practical Optimization
Apache Spark Core – Practical OptimizationApache Spark Core – Practical Optimization
Apache Spark Core – Practical Optimization
 
PGDAY FR 2014 : presentation de Postgresql chez leboncoin.fr
PGDAY FR 2014 : presentation de Postgresql chez leboncoin.frPGDAY FR 2014 : presentation de Postgresql chez leboncoin.fr
PGDAY FR 2014 : presentation de Postgresql chez leboncoin.fr
 
2022-06-23 Apache Arrow and DataFusion_ Changing the Game for implementing Da...
2022-06-23 Apache Arrow and DataFusion_ Changing the Game for implementing Da...2022-06-23 Apache Arrow and DataFusion_ Changing the Game for implementing Da...
2022-06-23 Apache Arrow and DataFusion_ Changing the Game for implementing Da...
 

Destaque

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
 
PGDay Campinas 2013 - Implementando o PostgreSQL de maneira escalável e com a...
PGDay Campinas 2013 - Implementando o PostgreSQL de maneira escalável e com a...PGDay Campinas 2013 - Implementando o PostgreSQL de maneira escalável e com a...
PGDay Campinas 2013 - Implementando o PostgreSQL de maneira escalável e com a...PGDay Campinas
 
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0Marcos William Valentini
 

Destaque (20)

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 ...
 
PGDay Campinas 2013 - Implementando o PostgreSQL de maneira escalável e com a...
PGDay Campinas 2013 - Implementando o PostgreSQL de maneira escalável e com a...PGDay Campinas 2013 - Implementando o PostgreSQL de maneira escalável e com a...
PGDay Campinas 2013 - Implementando o PostgreSQL de maneira escalável e com a...
 
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
 

Semelhante a 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
 

Semelhante a 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
 

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