SlideShare a Scribd company logo
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 Spark
Artem 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 estimates
Sergey 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 Pipelines
MongoDB
 
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 Cloud
Amazon 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 - ClickHouse
VictoriaMetrics
 
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
 
Paris data ladies #6
Paris data ladies #6Paris data ladies #6
Paris data ladies #6
Justine Deshais
 
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
Wisconsin Land Information Association
 
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 Hirama
Insight 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 Internals
Deiby Gómez
 
Explain this!
Explain this!Explain this!
Explain this!
Fabio Telles Rodriguez
 
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
MongoDB
 
Введение в современную PostgreSQL. Часть 2
Введение в современную PostgreSQL. Часть 2Введение в современную PostgreSQL. Часть 2
Введение в современную PostgreSQL. Часть 2
Dzianis 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 2022
Flink 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 snmp
gielth01
 

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

Data corruption
Data corruptionData corruption
Data corruption
Tomas Vondra
 
DB vs. encryption
DB vs. encryptionDB vs. encryption
DB vs. encryption
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.6
Tomas 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 2016
Tomas 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 / OpenAlt
Tomas 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 ZFS
Tomas 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 beyond
Tomas 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 ZFS
Tomas 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 ZFS
Tomas 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 JSONB
Tomas Vondra
 
PostgreSQL performance archaeology
PostgreSQL performance archaeologyPostgreSQL performance archaeology
PostgreSQL performance archaeology
Tomas Vondra
 
Výkonnostní archeologie
Výkonnostní archeologieVýkonnostní archeologie
Výkonnostní archeologie
Tomas 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íky
Tomas 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 fsync
Tomas 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 monitoring
Tomas 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

Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
IndexBug
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
Zilliz
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 

Recently uploaded (20)

Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 

CREATE STATISTICS - what is it for?