Submit Search
Upload
pgstattuple2: デッドタプル推定のための統計的手法
•
1 like
•
2,074 views
Uptime Technologies LLC (JP)
Follow
2013/7/13に開催されたPostgreSQLアンカンファレンスにおけるセッション「pgstattuple2: デッドタプル推定のための統計的手法」の資料です。
Read less
Read more
Career
Report
Share
Report
Share
1 of 11
Download now
Download to read offline
Recommended
Postgres Toolkitのご紹介
Postgres Toolkitのご紹介
Uptime Technologies LLC (JP)
PostgreSQL安定運用のコツ2009 @hbstudy#5
PostgreSQL安定運用のコツ2009 @hbstudy#5
Uptime Technologies LLC (JP)
BigDataを迎え撃つ! PostgreSQL並列分散ミドルウェア「Stado」の紹介と検証報告
BigDataを迎え撃つ! PostgreSQL並列分散ミドルウェア「Stado」の紹介と検証報告
Uptime Technologies LLC (JP)
PL/Pythonで独自の集約関数を作ってみる
PL/Pythonで独自の集約関数を作ってみる
Uptime Technologies LLC (JP)
「今そこにある危機」を捉える ~ pg_stat_statements revisited
「今そこにある危機」を捉える ~ pg_stat_statements revisited
Uptime Technologies LLC (JP)
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会
Shigeru Hanada
PostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
PostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
Shigeru Hanada
PostgreSQL共有バッファと関連ツール
PostgreSQL共有バッファと関連ツール
Masahiko Sawada
Recommended
Postgres Toolkitのご紹介
Postgres Toolkitのご紹介
Uptime Technologies LLC (JP)
PostgreSQL安定運用のコツ2009 @hbstudy#5
PostgreSQL安定運用のコツ2009 @hbstudy#5
Uptime Technologies LLC (JP)
BigDataを迎え撃つ! PostgreSQL並列分散ミドルウェア「Stado」の紹介と検証報告
BigDataを迎え撃つ! PostgreSQL並列分散ミドルウェア「Stado」の紹介と検証報告
Uptime Technologies LLC (JP)
PL/Pythonで独自の集約関数を作ってみる
PL/Pythonで独自の集約関数を作ってみる
Uptime Technologies LLC (JP)
「今そこにある危機」を捉える ~ pg_stat_statements revisited
「今そこにある危機」を捉える ~ pg_stat_statements revisited
Uptime Technologies LLC (JP)
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会
Shigeru Hanada
PostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
PostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
Shigeru Hanada
PostgreSQL共有バッファと関連ツール
PostgreSQL共有バッファと関連ツール
Masahiko Sawada
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界
Yoshinori Nakanishi
PostgreSQLアーキテクチャ入門
PostgreSQLアーキテクチャ入門
Uptime Technologies LLC (JP)
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
Uptime Technologies LLC (JP)
PostgreSQL Query Cache - "pqc"
PostgreSQL Query Cache - "pqc"
Uptime Technologies LLC (JP)
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
Shigeru Hanada
明日から使えるPostgre sql運用管理テクニック(監視編)
明日から使えるPostgre sql運用管理テクニック(監視編)
kasaharatt
まずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニング
Kosuke Kida
5ステップで始めるPostgreSQLレプリケーション@hbstudy#13
5ステップで始めるPostgreSQLレプリケーション@hbstudy#13
Uptime Technologies LLC (JP)
並列クエリを実行するPostgreSQLのアーキテクチャ
並列クエリを実行するPostgreSQLのアーキテクチャ
Kohei KaiGai
JTF2021w F3 postgresql frontline
JTF2021w F3 postgresql frontline
Haruka Takatsuka
PostgreSQLによるデータ分析ことはじめ
PostgreSQLによるデータ分析ことはじめ
Ohyama Masanori
PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)
PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)
Uptime Technologies LLC (JP)
いまさら聞けないPostgreSQL運用管理
いまさら聞けないPostgreSQL運用管理
Uptime Technologies LLC (JP)
PostgreSQLバックアップの基本
PostgreSQLバックアップの基本
Uptime Technologies LLC (JP)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
Hironobu Suzuki
Hackers Champloo 2016 postgresql-9.6
Hackers Champloo 2016 postgresql-9.6
Toshi Harada
PostgreSQL運用管理入門
PostgreSQL運用管理入門
Yoshiyuki Asaba
PostgreSQLセキュリティ総復習
PostgreSQLセキュリティ総復習
Uptime Technologies LLC (JP)
Osc2015 hokkaido postgresql-semi-stuructured-datatype
Osc2015 hokkaido postgresql-semi-stuructured-datatype
Toshi Harada
PostgreSQL10徹底解説
PostgreSQL10徹底解説
Masahiko Sawada
More Related Content
What's hot
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界
Yoshinori Nakanishi
PostgreSQLアーキテクチャ入門
PostgreSQLアーキテクチャ入門
Uptime Technologies LLC (JP)
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
Uptime Technologies LLC (JP)
PostgreSQL Query Cache - "pqc"
PostgreSQL Query Cache - "pqc"
Uptime Technologies LLC (JP)
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
Shigeru Hanada
明日から使えるPostgre sql運用管理テクニック(監視編)
明日から使えるPostgre sql運用管理テクニック(監視編)
kasaharatt
まずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニング
Kosuke Kida
5ステップで始めるPostgreSQLレプリケーション@hbstudy#13
5ステップで始めるPostgreSQLレプリケーション@hbstudy#13
Uptime Technologies LLC (JP)
並列クエリを実行するPostgreSQLのアーキテクチャ
並列クエリを実行するPostgreSQLのアーキテクチャ
Kohei KaiGai
JTF2021w F3 postgresql frontline
JTF2021w F3 postgresql frontline
Haruka Takatsuka
PostgreSQLによるデータ分析ことはじめ
PostgreSQLによるデータ分析ことはじめ
Ohyama Masanori
PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)
PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)
Uptime Technologies LLC (JP)
いまさら聞けないPostgreSQL運用管理
いまさら聞けないPostgreSQL運用管理
Uptime Technologies LLC (JP)
PostgreSQLバックアップの基本
PostgreSQLバックアップの基本
Uptime Technologies LLC (JP)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
Hironobu Suzuki
Hackers Champloo 2016 postgresql-9.6
Hackers Champloo 2016 postgresql-9.6
Toshi Harada
PostgreSQL運用管理入門
PostgreSQL運用管理入門
Yoshiyuki Asaba
PostgreSQLセキュリティ総復習
PostgreSQLセキュリティ総復習
Uptime Technologies LLC (JP)
Osc2015 hokkaido postgresql-semi-stuructured-datatype
Osc2015 hokkaido postgresql-semi-stuructured-datatype
Toshi Harada
PostgreSQL10徹底解説
PostgreSQL10徹底解説
Masahiko Sawada
What's hot
(20)
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界
PostgreSQLアーキテクチャ入門
PostgreSQLアーキテクチャ入門
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
PostgreSQL Query Cache - "pqc"
PostgreSQL Query Cache - "pqc"
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
明日から使えるPostgre sql運用管理テクニック(監視編)
明日から使えるPostgre sql運用管理テクニック(監視編)
まずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニング
5ステップで始めるPostgreSQLレプリケーション@hbstudy#13
5ステップで始めるPostgreSQLレプリケーション@hbstudy#13
並列クエリを実行するPostgreSQLのアーキテクチャ
並列クエリを実行するPostgreSQLのアーキテクチャ
JTF2021w F3 postgresql frontline
JTF2021w F3 postgresql frontline
PostgreSQLによるデータ分析ことはじめ
PostgreSQLによるデータ分析ことはじめ
PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)
PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)
いまさら聞けないPostgreSQL運用管理
いまさら聞けないPostgreSQL運用管理
PostgreSQLバックアップの基本
PostgreSQLバックアップの基本
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
Hackers Champloo 2016 postgresql-9.6
Hackers Champloo 2016 postgresql-9.6
PostgreSQL運用管理入門
PostgreSQL運用管理入門
PostgreSQLセキュリティ総復習
PostgreSQLセキュリティ総復習
Osc2015 hokkaido postgresql-semi-stuructured-datatype
Osc2015 hokkaido postgresql-semi-stuructured-datatype
PostgreSQL10徹底解説
PostgreSQL10徹底解説
pgstattuple2: デッドタプル推定のための統計的手法
1.
Copyright (c) 2013
Uptime Technologies, LLC. All rights reserved. 1 pgstattuple2: デッドタプル推定のための統計的手法 2013/7/13 アップタイム・テクノロジーズ 永安 悟史
2.
Copyright (c) 2013
Uptime Technologies, LLC. All rights reserved. 2 モチベーション • PostgreSQLはVACUUMによるメンテナンスが必要 • その契機のためにpgstattuple/pgstatindexによる調査が必 要 • データ量が増大する昨今、pgstattuple/pgstatindexの発生さ せるI/Oは無視できない • 調査によるパフォーマンスインパクトを減らしたい
3.
統計的手法の検討 • 本当にすべてのブロックをスキャンする必要があるのか? • ブロックサンプリングの可能性を検討したい •
Robert Haasにも「それは便利だと思う」とコメントされた – Re: [RFC] pgstattuple/pgstatindex enhancement – http://bit.ly/18HdrIH • 最近、統計を勉強してる Copyright (c) 2013 Uptime Technologies, LLC. All rights reserved. 3
4.
デッドタプル(削除済みタプル)の推定 • デッドタプルの割合を推定したい(0~100%) • ランダムにある程度のブロックをサンプリングする •
サンプルからテーブル全体のデッドタプル率を推定する • 誤差をどう考えるか、どの程度サンプリングすればよいか Copyright (c) 2013 Uptime Technologies, LLC. All rights reserved. 4
5.
統計的誤差 • サンプリングを行って母集団全体の推定を行うと、そこには 統計的誤差が生じる • 誤差を許容範囲内に収めるようなサンプリングを行う必要が ある •
サンプルから推定した母平均は、95%の確率で「標本平均 ±標準誤差×1.96」に収まる • 誤差は「母集団の数N、標本サイズn、標本標準偏差s」で決 まる Copyright (c) 2013 Uptime Technologies, LLC. All rights reserved. 5 標準誤差SE = 標準誤差 – Wikipedia http://ja.wikipedia.org/wiki/標準誤差
6.
サンプルサイズと統計的誤差 • テーブル100万ブロック、デッドタプル平均20%、標準偏差 20%の場合 – 3000ブロックサンプルすると、誤差は±3.6%程度 Copyright
(c) 2013 Uptime Technologies, LLC. All rights reserved. 6
7.
pgstattuple2 • pgstattuple2(regclass) – 3,000ブロック(=24MB)をランダムにサンプリング •
使い方はpgstattuple()と同等 – 標準誤差の数値をNOTICEとして出力する Copyright (c) 2013 Uptime Technologies, LLC. All rights reserved. 7 postgres=# select * from pgstattuple2('pgbench_accounts'); NOTICE: pgstattuple2: SE tuple_count 1297.31, tuple_len 156974.32, dead_tuple_count 185.78, dead_tuple_len 22479.30, free_space 162814.40 -[ RECORD 1 ]------+----------- table_len | 1394712576 tuple_count | 10002023 tuple_len | 1210244812 tuple_percent | 86.77 dead_tuple_count | 171785 dead_tuple_len | 20786018 dead_tuple_percent | 1.49 free_space | 21401483 free_percent | 1.53
8.
実測結果の比較 • 1.3GB(166,559ブロック)のうち、約1.8%をサンプリング – 推定精度は実用上十分と思われる。 –
実行時間は1/100程度(1,600ms→20ms) Copyright (c) 2013 Uptime Technologies, LLC. All rights reserved. 8 ※SF=100, CL=32, TX=5000, autovacuum=off
9.
Now available on
Github! • https://github.com/snaga/postgres Copyright (c) 2013 Uptime Technologies, LLC. All rights reserved. 9
10.
Copyright (c) 2013
Uptime Technologies, LLC. All rights reserved. 10 Q&A
11.
Copyright (c) 2013
Uptime Technologies, LLC. All rights reserved. 11 【お問い合わせ先】 アップタイム・テクノロジーズ合同会社 担当:永安 E-mail: snaga@uptime.jp Web: http://www.uptime.jp/
Download now