SlideShare a Scribd company logo
1 of 35
Download to read offline
https://github.com/tvondra/create-statistics-talk https://www.2ndQuadrant.com
pgconf.eu 2018
Lisbon, October 23-26, 2018
Tomas Vondra <tomas.vondra@2ndquadrant.com>
CREATE STATISTICS
What is it for?
https://github.com/tvondra/create-statistics-talk https://www.2ndQuadrant.com
pgconf.eu 2018
Lisbon, October 23-26, 2018
Agenda
●
Quick intro into planning and estimates.
●
Estimates with correlated columns.
●
CREATE STATISTICS to the rescue!
– functional dependencies
– ndistinct
●
Future improvements.
https://github.com/tvondra/create-statistics-talk https://www.2ndQuadrant.com
pgconf.eu 2018
Lisbon, October 23-26, 2018
ZIP_CODES
CREATE TABLE zip_codes (
postal_code VARCHAR(20),
place_name VARCHAR(180),
state_name VARCHAR(100),
province_name VARCHAR(100),
community_name VARCHAR(100),
latitude REAL,
longitude REAL
);
cat create-table.sql | psql test
cat zip-codes-portugal.csv | psql test -c "copy zip_codes from stdin"
-- http://download.geonames.org/export/zip/
https://github.com/tvondra/create-statistics-talk https://www.2ndQuadrant.com
pgconf.eu 2018
Lisbon, October 23-26, 2018
EXPLAIN
EXPLAIN (ANALYZE, TIMING off)
SELECT * FROM zip_codes WHERE place_name = 'Lisboa';
QUERY PLAN
----------------------------------------------------------------
Seq Scan on zip_codes (cost=0.00..4860.76 rows=8588 width=56)
(actual rows=9166 loops=1)
Filter: ((place_name)::text = 'Lisboa'::text)
Rows Removed by Filter: 197775
https://github.com/tvondra/create-statistics-talk https://www.2ndQuadrant.com
pgconf.eu 2018
Lisbon, October 23-26, 2018
reltuples , relpages
SELECT reltuples, relpages FROM pg_class
WHERE relname = 'zip_codes';
reltuples | relpages
-----------+----------
206941 | 2274
https://github.com/tvondra/create-statistics-talk https://www.2ndQuadrant.com
pgconf.eu 2018
Lisbon, October 23-26, 2018
SELECT * FROM pg_stats
WHERE tablename = 'zip_codes'
AND attname = 'place_name';
------------------+---------------------------------
schemaname | public
tablename | zip_codes
attname | place_name
... | ...
most_common_vals | {Lisboa, Porto, "Vila Nova de Gaia", Maia, ...}
most_common_freqs | {0.0415, 0.0206333, 0.00896667, 0.00893333, ...}
... | ...
https://github.com/tvondra/create-statistics-talk https://www.2ndQuadrant.com
pgconf.eu 2018
Lisbon, October 23-26, 2018
EXPLAIN (ANALYZE, TIMING off)
SELECT * FROM zip_codes WHERE place_name = 'Lisboa';
QUERY PLAN
----------------------------------------------------------------
Seq Scan on zip_codes (cost=0.00..4860.76 rows=8588 width=56)
(actual rows=9166 loops=1)
reltuples | 206941
most_common_vals | {Lisboa, …}
most_common_freqs | {0.0415, …}
206941 * 0.0415 = 8588.0515
https://github.com/tvondra/create-statistics-talk https://www.2ndQuadrant.com
pgconf.eu 2018
Lisbon, October 23-26, 2018
EXPLAIN (ANALYZE, TIMING off)
SELECT * FROM zip_codes WHERE state_name = 'Lisboa';
QUERY PLAN
-----------------------------------------------------------------
Seq Scan on zip_codes (cost=0.00..4860.76 rows=34263 width=56)
(actual rows=35230 loops=1)
reltuples | 206941
most_common_vals | {Lisboa, …}
most_common_freqs | {0.165567, …}
206941 * 0.165567 = 34262.6
https://github.com/tvondra/create-statistics-talk https://www.2ndQuadrant.com
pgconf.eu 2018
Lisbon, October 23-26, 2018
EXPLAIN (ANALYZE, TIMING off)
SELECT * FROM zip_codes WHERE place_name = 'Lisboa'
AND state_name = 'Lisboa';
QUERY PLAN
----------------------------------------------------------------
Seq Scan on zip_codes (cost=0.00..5378.11 rows=1422 width=56)
(actual rows=9165 loops=1)
Filter: (((place_name)::text = 'Lisboa'::text)
AND ((state_name)::text = 'Lisboa'::text))
Rows Removed by Filter: 197776
Underestimate
https://github.com/tvondra/create-statistics-talk https://www.2ndQuadrant.com
pgconf.eu 2018
Lisbon, October 23-26, 2018
P (A & B) = P(A) * P(B)
https://github.com/tvondra/create-statistics-talk https://www.2ndQuadrant.com
pgconf.eu 2018
Lisbon, October 23-26, 2018
SELECT * FROM zip_codes
WHERE place_name = 'Lisboa'
AND state_name = 'Lisboa';
P(place_name = 'Lisboa' & county_name = 'Lisboa')
= P(place_name = 'Lisboa') * P(state_name = 'Lisboa')
= 0.0415 * 0.165567
= 0.0068710305
206941 * 0.0068710305 = 1421.898
https://github.com/tvondra/create-statistics-talk https://www.2ndQuadrant.com
pgconf.eu 2018
Lisbon, October 23-26, 2018
Underestimate
EXPLAIN (ANALYZE, TIMING off)
SELECT * FROM zip_codes WHERE place_name = 'Lisboa'
AND state_name = 'Lisboa';
QUERY PLAN
----------------------------------------------------------------
Seq Scan on zip_codes (cost=0.00..5378.11 rows=1422 width=56)
(actual rows=9165 loops=1)
Filter: (((place_name)::text = 'Lisboa'::text)
AND ((state_name)::text = 'Lisboa'::text))
Rows Removed by Filter: 197776
https://github.com/tvondra/create-statistics-talk https://www.2ndQuadrant.com
pgconf.eu 2018
Lisbon, October 23-26, 2018
EXPLAIN (ANALYZE, TIMING off)
SELECT * FROM zip_codes WHERE place_name = 'Lisboa'
AND state_name != 'Lisboa';
QUERY PLAN
----------------------------------------------------------------
Seq Scan on zip_codes (cost=0.00..5378.11 rows=7166 width=56)
(actual rows=1 loops=1)
Filter: (((state_name)::text <> 'Lisboa'::text)
AND ((place_name)::text = 'Lisboa'::text))
Rows Removed by Filter: 206940
Overestimate
https://github.com/tvondra/create-statistics-talk https://www.2ndQuadrant.com
pgconf.eu 2018
Lisbon, October 23-26, 2018
Correlated columns
●
Attribute Value Independence Assumption (AVIA)
– may result in wildly inaccurate estimates
– both underestimates and overestimates
●
consequences
– poor scan choices (Seq Scan vs. Index Scan)
– poor join choices (Nested Loop)
https://github.com/tvondra/create-statistics-talk https://www.2ndQuadrant.com
pgconf.eu 2018
Lisbon, October 23-26, 2018
Index Scan using orders_city_idx on orders
(cost=0.28..185.10 rows=90 width=36)
(actual rows=12248237 loops=1)
Seq Scan using on orders
(cost=0.13..129385.10 rows=12248237 width=36)
(actual rows=90 loops=1)
Poor scan choices
https://github.com/tvondra/create-statistics-talk https://www.2ndQuadrant.com
pgconf.eu 2018
Lisbon, October 23-26, 2018
-> Nested Loop (… rows=90 …) (… rows=12248237 …)
-> Index Scan using orders_city_idx on orders
(cost=0.28..185.10 rows=90 width=36)
(actual rows=12248237 loops=1)
...
-> Index Scan … (… loops=12248237)
Poor join choices
https://github.com/tvondra/create-statistics-talk https://www.2ndQuadrant.com
pgconf.eu 2018
Lisbon, October 23-26, 2018
-> Nested Loop (… rows=90 …) (… rows=12248237 …)
-> Nested Loop (… rows=90 …) (… rows=12248237 …)
-> Nested Loop (… rows=90 …) (… rows=12248237 …)
-> Index Scan using orders_city_idx on orders
(cost=0.28..185.10 rows=90 width=36)
(actual rows=12248237 loops=1)
...
-> Index Scan … (… loops=12248237)
-> Index Scan … (… loops=12248237)
-> Index Scan … (… loops=12248237)
-> Index Scan … (… loops=12248237)
Poor join choices
https://github.com/tvondra/create-statistics-talk https://www.2ndQuadrant.com
pgconf.eu 2018
Lisbon, October 23-26, 2018
functional dependencies
(WHERE)
https://github.com/tvondra/create-statistics-talk https://www.2ndQuadrant.com
pgconf.eu 2018
Lisbon, October 23-26, 2018
Functional Dependencies
●
value in column A determines value in column B
●
trivial example: primary key determines everything
– zip code {place, state, province, community→ }
– 4625-113 {Favões, Porto, Marco de Canaveses, Favões→ }
●
other dependencies:
– place community→
– community province→
– province state→
https://github.com/tvondra/create-statistics-talk https://www.2ndQuadrant.com
pgconf.eu 2018
Lisbon, October 23-26, 2018
CREATE STATISTICS
CREATE STATISTICS s (dependencies)
ON place_name, state_name, province_name FROM zip_codes;
2 3 4
ANALYZE zip_codes;
SELECT stxdependencies FROM pg_statistic_ext WHERE stxname = 's';
stxdependencies
-------------------------------------------------
{"2 => 3": 0.789467, "2 => 4": 0.774333,
"4 => 2": 0.093300, "4 => 3": 0.993167,
"2, 3 => 4": 0.951667, "2, 4 => 3": 0.998333,
"3, 4 => 2": 0.093300}
https://github.com/tvondra/create-statistics-talk https://www.2ndQuadrant.com
pgconf.eu 2018
Lisbon, October 23-26, 2018
place → state: 0.789 = d
P(place = 'Lisboa' & state = 'Lisboa') =
P(place = 'Lisboa') * [d + (1-d) * P(state = 'Lisboa')]
206941 * 0.0415 * (0.789 + (1-0.789) * 0.1656) = 7076.05
https://github.com/tvondra/create-statistics-talk https://www.2ndQuadrant.com
pgconf.eu 2018
Lisbon, October 23-26, 2018
EXPLAIN (ANALYZE, TIMING off)
SELECT * FROM zip_codes WHERE place_name = 'Berlin'
AND state_name = 'Berlin';
QUERY PLAN
------------------------------------------------------------------
Seq Scan on zip_codes (cost=0.00..5378.11 rows=7076 width=56)
(actual rows=9165 loops=1)
Filter: (((place_name)::text = 'Lisboa'::text)
AND ((state_name)::text = 'Lisboa'::text))
Rows Removed by Filter: 197776
Underestimate : fied
https://github.com/tvondra/create-statistics-talk https://www.2ndQuadrant.com
pgconf.eu 2018
Lisbon, October 23-26, 2018
EXPLAIN (ANALYZE, TIMING off)
SELECT * FROM zip_codes WHERE place_name = 'Lisboa'
AND state_name != 'Lisboa';
QUERY PLAN
----------------------------------------------------------------
Seq Scan on zip_codes (cost=0.00..5378.11 rows=7166 width=56)
(actual rows=1 loops=1)
Filter: (((state_name)::text <> 'Lisboa'::text)
AND ((place_name)::text = 'Lisboa'::text))
Rows Removed by Filter: 206940
Functional dependencies only work with equalities.
Overestimate #1: not fied :-(
https://github.com/tvondra/create-statistics-talk https://www.2ndQuadrant.com
pgconf.eu 2018
Lisbon, October 23-26, 2018
EXPLAIN (ANALYZE, TIMING off)
SELECT * FROM zip_codes WHERE place_name = 'Lisboa'
AND state_name = 'Porto';
QUERY PLAN
------------------------------------------------------------------
Seq Scan on zip_codes (cost=0.00..5378.11 rows=1374 width=56)
(actual rows=0 loops=1)
Filter: (((place_name)::text = 'Lisboa'::text)
AND ((state_name)::text = 'Porto'::text))
Rows Removed by Filter: 206941
The queries need to respect the functional dependencies.
Overestimate #2: not fied :-(
https://github.com/tvondra/create-statistics-talk https://www.2ndQuadrant.com
pgconf.eu 2018
Lisbon, October 23-26, 2018
ndistinct
(GROUP BY)
https://github.com/tvondra/create-statistics-talk https://www.2ndQuadrant.com
pgconf.eu 2018
Lisbon, October 23-26, 2018
EXPLAIN (ANALYZE, TIMING off)
SELECT count(*) FROM zip_codes GROUP BY community_name;
QUERY PLAN
---------------------------------------------------------------------------
HashAggregate (cost=344126.92..344155.40 rows=2860 width=19)
(actual rows=3845 loops=1)
Group Key: community_name
-> Seq Scan on zip_codes (cost=0.00..277901.95 rows=13244995 width=11)
(actual rows=13244224 loops=1)
Planning Time: 0.219 ms
Execution Time: 6664.752 ms
https://github.com/tvondra/create-statistics-talk https://www.2ndQuadrant.com
pgconf.eu 2018
Lisbon, October 23-26, 2018
SELECT attname, n_distinct
FROM pg_stats WHERE tablename = 'zip_codes';
attname | n_distinct
----------------+------------
place_name | 6239
state_name | 20
latitude | 5532
longitude | 5135
province_name | 306
postal_code | 171199
community_name | 2860
(7 rows)
https://github.com/tvondra/create-statistics-talk https://www.2ndQuadrant.com
pgconf.eu 2018
Lisbon, October 23-26, 2018
EXPLAIN (ANALYZE, TIMING off)
SELECT count(*) FROM zip_codes GROUP BY province_name, community_name;
QUERY PLAN
------------------------------------------------------------------------------------
GroupAggregate (cost=2387970.92..2529135.75 rows=875160 width=29)
(actual rows=3845 loops=1)
Group Key: province_name, community_name
-> Sort (cost=2387970.92..2421083.41 rows=13244995 width=21)
(actual rows=13244224 loops=1)
Sort Key: province_name, community_name
Sort Method: external merge Disk: 415624kB
-> Seq Scan on zip_codes (cost=0.00..277901.95 rows=13244995 width=21)
(actual rows=13244224 loops=1)
Planning Time: 1.116 ms
Execution Time: 48591.326 ms
https://github.com/tvondra/create-statistics-talk https://www.2ndQuadrant.com
pgconf.eu 2018
Lisbon, October 23-26, 2018
EXPLAIN (ANALYZE, TIMING off)
SELECT count(*) FROM zip_codes GROUP BY province_name, community_name;
QUERY PLAN
----------------------------------------------------------------------------------
GroupAggregate (cost=2387970.92..2529135.75 rows=875160 width=29)
(actual rows=3845 loops=1)
Group Key: province_name, community_name
-> Sort (cost=2387970.92..2421083.41 rows=13244995 width=21)
(actual rows=13244224 loops=1)
Sort Key: province_name, community_name
Sort Method: external merge Disk: 415624kB
-> Seq Scan on zip_codes (cost=0.00..277901.95 rows=13244995 width=21)
(actual rows=13244224 loops=1)
Planning Time: 1.116 ms
Execution Time: 48591.326 ms
https://github.com/tvondra/create-statistics-talk https://www.2ndQuadrant.com
pgconf.eu 2018
Lisbon, October 23-26, 2018
ndistinct(province, community)
=
ndistinct(province) * ndistinct(community)
306 * 2860 = 875160
https://github.com/tvondra/create-statistics-talk https://www.2ndQuadrant.com
pgconf.eu 2018
Lisbon, October 23-26, 2018
CREATE STATISTICS s (ndistinct)
ON state_name, province_name, community_name
FROM zip_codes;
ANALYZE zip_codes;
SELECT stxndistinct FROM pg_statistic_ext;
stxndistinct
------------------------------------------------------------
{"3, 4": 308, "3, 5": 2858, "4, 5": 2858, "3, 4, 5": 2858}
https://github.com/tvondra/create-statistics-talk https://www.2ndQuadrant.com
pgconf.eu 2018
Lisbon, October 23-26, 2018
EXPLAIN (ANALYZE, TIMING off)
SELECT count(*) FROM zip_codes GROUP BY province_name, community_name;
QUERY PLAN
-------------------------------------------------------------------------
HashAggregate (cost=102569.26..102597.84 rows=2858 width=36)
(actual rows=3845 loops=1)
Group Key: state_name, province_name, community_name
-> Seq Scan on zip_codes (cost=0.00..69467.13 rows=3310213 width=28)
(actual rows=3311056 loops=1)
Planning Time: 1.367 ms
Execution Time: 2343.846 ms
https://github.com/tvondra/create-statistics-talk https://www.2ndQuadrant.com
pgconf.eu 2018
Lisbon, October 23-26, 2018
ndistinct
●
the “old behavior” was defensive
– unreliable estimates with multiple columns
– HashAggregate can’t spill to disk (OOM)
– rather than crash do Sort+GroupAggregate (slow)
●
ndistinct coefcients
– make multi-column ndistinct estimates more reliable
– reduced danger of OOM
– large tables + GROUP BY multiple columns
https://github.com/tvondra/create-statistics-talk https://www.2ndQuadrant.com
pgconf.eu 2018
Lisbon, October 23-26, 2018
Future Improvements
●
additional types of statistics
– MCV lists, histograms, …
●
statistics on expressions
– currently only simple column references
– alternative to functional indexes
●
improving join estimates
– using MCV lists
– special multi-table statistics (syntax already supports it)
https://github.com/tvondra/create-statistics-talk https://www.2ndQuadrant.com
pgconf.eu 2018
Lisbon, October 23-26, 2018
Questions?
Tomas Vondra
tomas.vondra@2ndquadrant.com
tomas@pgaddict.com
@fuzzycz

More Related Content

Similar to CREATE STATISTICS - what is it for?

Big Data-Driven Applications with Cassandra and Spark
Big Data-Driven Applications  with Cassandra and SparkBig Data-Driven Applications  with Cassandra and Spark
Big Data-Driven Applications with Cassandra and SparkArtem Chebotko
 
Improving MariaDB’s Query Optimizer with better selectivity estimates
Improving MariaDB’s Query Optimizer with better selectivity estimatesImproving MariaDB’s Query Optimizer with better selectivity estimates
Improving MariaDB’s Query Optimizer with better selectivity estimatesSergey Petrunya
 
MongoDB Days UK: Using MongoDB and Python for Data Analysis Pipelines
MongoDB Days UK: Using MongoDB and Python for Data Analysis PipelinesMongoDB Days UK: Using MongoDB and Python for Data Analysis Pipelines
MongoDB Days UK: Using MongoDB and Python for Data Analysis PipelinesMongoDB
 
Community-driven Language Design at TC39 on the JavaScript Pipeline Operator ...
Community-driven Language Design at TC39 on the JavaScript Pipeline Operator ...Community-driven Language Design at TC39 on the JavaScript Pipeline Operator ...
Community-driven Language Design at TC39 on the JavaScript Pipeline Operator ...Igalia
 
(NET301) New Capabilities for Amazon Virtual Private Cloud
(NET301) New Capabilities for Amazon Virtual Private Cloud(NET301) New Capabilities for Amazon Virtual Private Cloud
(NET301) New Capabilities for Amazon Virtual Private CloudAmazon Web Services
 
Application Monitoring using Open Source: VictoriaMetrics - ClickHouse
Application Monitoring using Open Source: VictoriaMetrics - ClickHouseApplication Monitoring using Open Source: VictoriaMetrics - ClickHouse
Application Monitoring using Open Source: VictoriaMetrics - ClickHouseVictoriaMetrics
 
Application Monitoring using Open Source - VictoriaMetrics & Altinity ClickHo...
Application Monitoring using Open Source - VictoriaMetrics & Altinity ClickHo...Application Monitoring using Open Source - VictoriaMetrics & Altinity ClickHo...
Application Monitoring using Open Source - VictoriaMetrics & Altinity ClickHo...Altinity Ltd
 
Understand the Query Plan to Optimize Performance with EXPLAIN and EXPLAIN AN...
Understand the Query Plan to Optimize Performance with EXPLAIN and EXPLAIN AN...Understand the Query Plan to Optimize Performance with EXPLAIN and EXPLAIN AN...
Understand the Query Plan to Optimize Performance with EXPLAIN and EXPLAIN AN...EDB
 
Fast NoSQL from HDDs?
Fast NoSQL from HDDs? Fast NoSQL from HDDs?
Fast NoSQL from HDDs? ScyllaDB
 
[D15] 最強にスケーラブルなカラムナーDBよ、Hadoopとのタッグでビッグデータの地平を目指せ!by Daisuke Hirama
[D15] 最強にスケーラブルなカラムナーDBよ、Hadoopとのタッグでビッグデータの地平を目指せ!by Daisuke Hirama[D15] 最強にスケーラブルなカラムナーDBよ、Hadoopとのタッグでビッグデータの地平を目指せ!by Daisuke Hirama
[D15] 最強にスケーラブルなカラムナーDBよ、Hadoopとのタッグでビッグデータの地平を目指せ!by Daisuke HiramaInsight Technology, Inc.
 
RR & Docker @ MuensteR Meetup (Sep 2017)
RR & Docker @ MuensteR Meetup (Sep 2017)RR & Docker @ MuensteR Meetup (Sep 2017)
RR & Docker @ MuensteR Meetup (Sep 2017)Daniel Nüst
 
Indexes From the Concept to Internals
Indexes From the Concept to InternalsIndexes From the Concept to Internals
Indexes From the Concept to InternalsDeiby Gómez
 
MongoDB World 2016: The Best IoT Analytics with MongoDB
MongoDB World 2016: The Best IoT Analytics with MongoDBMongoDB World 2016: The Best IoT Analytics with MongoDB
MongoDB World 2016: The Best IoT Analytics with MongoDBMongoDB
 
Введение в современную PostgreSQL. Часть 2
Введение в современную PostgreSQL. Часть 2Введение в современную PostgreSQL. Часть 2
Введение в современную PostgreSQL. Часть 2Dzianis Pirshtuk
 
The Current State of Table API in 2022
The Current State of Table API in 2022The Current State of Table API in 2022
The Current State of Table API in 2022Flink Forward
 
Geospatial and bitemporal search in C* with pluggable Lucene index by Andrés ...
Geospatial and bitemporal search in C* with pluggable Lucene index by Andrés ...Geospatial and bitemporal search in C* with pluggable Lucene index by Andrés ...
Geospatial and bitemporal search in C* with pluggable Lucene index by Andrés ...Big Data Spain
 
Mac ip snmp
Mac ip snmpMac ip snmp
Mac ip snmpgielth01
 

Similar to CREATE STATISTICS - what is it for? (20)

Big Data-Driven Applications with Cassandra and Spark
Big Data-Driven Applications  with Cassandra and SparkBig Data-Driven Applications  with Cassandra and Spark
Big Data-Driven Applications with Cassandra and Spark
 
Improving MariaDB’s Query Optimizer with better selectivity estimates
Improving MariaDB’s Query Optimizer with better selectivity estimatesImproving MariaDB’s Query Optimizer with better selectivity estimates
Improving MariaDB’s Query Optimizer with better selectivity estimates
 
MongoDB Days UK: Using MongoDB and Python for Data Analysis Pipelines
MongoDB Days UK: Using MongoDB and Python for Data Analysis PipelinesMongoDB Days UK: Using MongoDB and Python for Data Analysis Pipelines
MongoDB Days UK: Using MongoDB and Python for Data Analysis Pipelines
 
Community-driven Language Design at TC39 on the JavaScript Pipeline Operator ...
Community-driven Language Design at TC39 on the JavaScript Pipeline Operator ...Community-driven Language Design at TC39 on the JavaScript Pipeline Operator ...
Community-driven Language Design at TC39 on the JavaScript Pipeline Operator ...
 
(NET301) New Capabilities for Amazon Virtual Private Cloud
(NET301) New Capabilities for Amazon Virtual Private Cloud(NET301) New Capabilities for Amazon Virtual Private Cloud
(NET301) New Capabilities for Amazon Virtual Private Cloud
 
Application Monitoring using Open Source: VictoriaMetrics - ClickHouse
Application Monitoring using Open Source: VictoriaMetrics - ClickHouseApplication Monitoring using Open Source: VictoriaMetrics - ClickHouse
Application Monitoring using Open Source: VictoriaMetrics - ClickHouse
 
Application Monitoring using Open Source - VictoriaMetrics & Altinity ClickHo...
Application Monitoring using Open Source - VictoriaMetrics & Altinity ClickHo...Application Monitoring using Open Source - VictoriaMetrics & Altinity ClickHo...
Application Monitoring using Open Source - VictoriaMetrics & Altinity ClickHo...
 
Understand the Query Plan to Optimize Performance with EXPLAIN and EXPLAIN AN...
Understand the Query Plan to Optimize Performance with EXPLAIN and EXPLAIN AN...Understand the Query Plan to Optimize Performance with EXPLAIN and EXPLAIN AN...
Understand the Query Plan to Optimize Performance with EXPLAIN and EXPLAIN AN...
 
Paris data ladies #6
Paris data ladies #6Paris data ladies #6
Paris data ladies #6
 
Python Coding Examples for Drive Time Analysis
Python Coding Examples for Drive Time AnalysisPython Coding Examples for Drive Time Analysis
Python Coding Examples for Drive Time Analysis
 
Fast NoSQL from HDDs?
Fast NoSQL from HDDs? Fast NoSQL from HDDs?
Fast NoSQL from HDDs?
 
[D15] 最強にスケーラブルなカラムナーDBよ、Hadoopとのタッグでビッグデータの地平を目指せ!by Daisuke Hirama
[D15] 最強にスケーラブルなカラムナーDBよ、Hadoopとのタッグでビッグデータの地平を目指せ!by Daisuke Hirama[D15] 最強にスケーラブルなカラムナーDBよ、Hadoopとのタッグでビッグデータの地平を目指せ!by Daisuke Hirama
[D15] 最強にスケーラブルなカラムナーDBよ、Hadoopとのタッグでビッグデータの地平を目指せ!by Daisuke Hirama
 
RR & Docker @ MuensteR Meetup (Sep 2017)
RR & Docker @ MuensteR Meetup (Sep 2017)RR & Docker @ MuensteR Meetup (Sep 2017)
RR & Docker @ MuensteR Meetup (Sep 2017)
 
Indexes From the Concept to Internals
Indexes From the Concept to InternalsIndexes From the Concept to Internals
Indexes From the Concept to Internals
 
Explain this!
Explain this!Explain this!
Explain this!
 
MongoDB World 2016: The Best IoT Analytics with MongoDB
MongoDB World 2016: The Best IoT Analytics with MongoDBMongoDB World 2016: The Best IoT Analytics with MongoDB
MongoDB World 2016: The Best IoT Analytics with MongoDB
 
Введение в современную PostgreSQL. Часть 2
Введение в современную PostgreSQL. Часть 2Введение в современную PostgreSQL. Часть 2
Введение в современную PostgreSQL. Часть 2
 
The Current State of Table API in 2022
The Current State of Table API in 2022The Current State of Table API in 2022
The Current State of Table API in 2022
 
Geospatial and bitemporal search in C* with pluggable Lucene index by Andrés ...
Geospatial and bitemporal search in C* with pluggable Lucene index by Andrés ...Geospatial and bitemporal search in C* with pluggable Lucene index by Andrés ...
Geospatial and bitemporal search in C* with pluggable Lucene index by Andrés ...
 
Mac ip snmp
Mac ip snmpMac ip snmp
Mac ip snmp
 

More from Tomas Vondra

PostgreSQL performance improvements in 9.5 and 9.6
PostgreSQL performance improvements in 9.5 and 9.6PostgreSQL performance improvements in 9.5 and 9.6
PostgreSQL performance improvements in 9.5 and 9.6Tomas Vondra
 
PostgreSQL na EXT4, XFS, BTRFS a ZFS / FOSDEM PgDay 2016
PostgreSQL na EXT4, XFS, BTRFS a ZFS / FOSDEM PgDay 2016PostgreSQL na EXT4, XFS, BTRFS a ZFS / FOSDEM PgDay 2016
PostgreSQL na EXT4, XFS, BTRFS a ZFS / FOSDEM PgDay 2016Tomas Vondra
 
PostgreSQL na EXT4, XFS, BTRFS a ZFS / OpenAlt
PostgreSQL na EXT4, XFS, BTRFS a ZFS / OpenAltPostgreSQL na EXT4, XFS, BTRFS a ZFS / OpenAlt
PostgreSQL na EXT4, XFS, BTRFS a ZFS / OpenAltTomas Vondra
 
PostgreSQL on EXT4, XFS, BTRFS and ZFS
PostgreSQL on EXT4, XFS, BTRFS and ZFSPostgreSQL on EXT4, XFS, BTRFS and ZFS
PostgreSQL on EXT4, XFS, BTRFS and ZFSTomas Vondra
 
Performance improvements in PostgreSQL 9.5 and beyond
Performance improvements in PostgreSQL 9.5 and beyondPerformance improvements in PostgreSQL 9.5 and beyond
Performance improvements in PostgreSQL 9.5 and beyondTomas Vondra
 
Postgresql na EXT3/4, XFS, BTRFS a ZFS
Postgresql na EXT3/4, XFS, BTRFS a ZFSPostgresql na EXT3/4, XFS, BTRFS a ZFS
Postgresql na EXT3/4, XFS, BTRFS a ZFSTomas Vondra
 
PostgreSQL on EXT4, XFS, BTRFS and ZFS
PostgreSQL on EXT4, XFS, BTRFS and ZFSPostgreSQL on EXT4, XFS, BTRFS and ZFS
PostgreSQL on EXT4, XFS, BTRFS and ZFSTomas Vondra
 
Novinky v PostgreSQL 9.4 a JSONB
Novinky v PostgreSQL 9.4 a JSONBNovinky v PostgreSQL 9.4 a JSONB
Novinky v PostgreSQL 9.4 a JSONBTomas Vondra
 
PostgreSQL performance archaeology
PostgreSQL performance archaeologyPostgreSQL performance archaeology
PostgreSQL performance archaeologyTomas Vondra
 
Výkonnostní archeologie
Výkonnostní archeologieVýkonnostní archeologie
Výkonnostní archeologieTomas Vondra
 
Český fulltext a sdílené slovníky
Český fulltext a sdílené slovníkyČeský fulltext a sdílené slovníky
Český fulltext a sdílené slovníkyTomas Vondra
 
SSD vs HDD / WAL, indexes and fsync
SSD vs HDD / WAL, indexes and fsyncSSD vs HDD / WAL, indexes and fsync
SSD vs HDD / WAL, indexes and fsyncTomas Vondra
 
Checkpoint (CSPUG 22.11.2011)
Checkpoint (CSPUG 22.11.2011)Checkpoint (CSPUG 22.11.2011)
Checkpoint (CSPUG 22.11.2011)Tomas Vondra
 
Čtení explain planu (CSPUG 21.6.2011)
Čtení explain planu (CSPUG 21.6.2011)Čtení explain planu (CSPUG 21.6.2011)
Čtení explain planu (CSPUG 21.6.2011)Tomas Vondra
 
Replikace (CSPUG 19.4.2011)
Replikace (CSPUG 19.4.2011)Replikace (CSPUG 19.4.2011)
Replikace (CSPUG 19.4.2011)Tomas Vondra
 
PostgreSQL / Performance monitoring
PostgreSQL / Performance monitoringPostgreSQL / Performance monitoring
PostgreSQL / Performance monitoringTomas Vondra
 

More from Tomas Vondra (18)

Data corruption
Data corruptionData corruption
Data corruption
 
DB vs. encryption
DB vs. encryptionDB vs. encryption
DB vs. encryption
 
PostgreSQL performance improvements in 9.5 and 9.6
PostgreSQL performance improvements in 9.5 and 9.6PostgreSQL performance improvements in 9.5 and 9.6
PostgreSQL performance improvements in 9.5 and 9.6
 
PostgreSQL na EXT4, XFS, BTRFS a ZFS / FOSDEM PgDay 2016
PostgreSQL na EXT4, XFS, BTRFS a ZFS / FOSDEM PgDay 2016PostgreSQL na EXT4, XFS, BTRFS a ZFS / FOSDEM PgDay 2016
PostgreSQL na EXT4, XFS, BTRFS a ZFS / FOSDEM PgDay 2016
 
PostgreSQL na EXT4, XFS, BTRFS a ZFS / OpenAlt
PostgreSQL na EXT4, XFS, BTRFS a ZFS / OpenAltPostgreSQL na EXT4, XFS, BTRFS a ZFS / OpenAlt
PostgreSQL na EXT4, XFS, BTRFS a ZFS / OpenAlt
 
PostgreSQL on EXT4, XFS, BTRFS and ZFS
PostgreSQL on EXT4, XFS, BTRFS and ZFSPostgreSQL on EXT4, XFS, BTRFS and ZFS
PostgreSQL on EXT4, XFS, BTRFS and ZFS
 
Performance improvements in PostgreSQL 9.5 and beyond
Performance improvements in PostgreSQL 9.5 and beyondPerformance improvements in PostgreSQL 9.5 and beyond
Performance improvements in PostgreSQL 9.5 and beyond
 
Postgresql na EXT3/4, XFS, BTRFS a ZFS
Postgresql na EXT3/4, XFS, BTRFS a ZFSPostgresql na EXT3/4, XFS, BTRFS a ZFS
Postgresql na EXT3/4, XFS, BTRFS a ZFS
 
PostgreSQL on EXT4, XFS, BTRFS and ZFS
PostgreSQL on EXT4, XFS, BTRFS and ZFSPostgreSQL on EXT4, XFS, BTRFS and ZFS
PostgreSQL on EXT4, XFS, BTRFS and ZFS
 
Novinky v PostgreSQL 9.4 a JSONB
Novinky v PostgreSQL 9.4 a JSONBNovinky v PostgreSQL 9.4 a JSONB
Novinky v PostgreSQL 9.4 a JSONB
 
PostgreSQL performance archaeology
PostgreSQL performance archaeologyPostgreSQL performance archaeology
PostgreSQL performance archaeology
 
Výkonnostní archeologie
Výkonnostní archeologieVýkonnostní archeologie
Výkonnostní archeologie
 
Český fulltext a sdílené slovníky
Český fulltext a sdílené slovníkyČeský fulltext a sdílené slovníky
Český fulltext a sdílené slovníky
 
SSD vs HDD / WAL, indexes and fsync
SSD vs HDD / WAL, indexes and fsyncSSD vs HDD / WAL, indexes and fsync
SSD vs HDD / WAL, indexes and fsync
 
Checkpoint (CSPUG 22.11.2011)
Checkpoint (CSPUG 22.11.2011)Checkpoint (CSPUG 22.11.2011)
Checkpoint (CSPUG 22.11.2011)
 
Čtení explain planu (CSPUG 21.6.2011)
Čtení explain planu (CSPUG 21.6.2011)Čtení explain planu (CSPUG 21.6.2011)
Čtení explain planu (CSPUG 21.6.2011)
 
Replikace (CSPUG 19.4.2011)
Replikace (CSPUG 19.4.2011)Replikace (CSPUG 19.4.2011)
Replikace (CSPUG 19.4.2011)
 
PostgreSQL / Performance monitoring
PostgreSQL / Performance monitoringPostgreSQL / Performance monitoring
PostgreSQL / Performance monitoring
 

Recently uploaded

Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 

Recently uploaded (20)

Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 

CREATE STATISTICS - what is it for?