マネージドデータベースサービスで利用できる利用できるで利用できるきる
PostgreSQL の拡張モジュール解説拡張モジュール解説モジュール解説解説
2019/02/22

SRA OSS, Inc. 日本支社
© 2019 SRA OSS, Inc. Japan

1

内容
●

クラウドサービスの拡張モジュール解説 BIG 3（AWS, Azure, GCP)●

マネージドサービスとしての拡張モジュール解説 PostgreSQL●

PostgreSQL の拡張モジュール解説拡張モジュール解説モジュール解説●

拡張モジュール解説モジュール解説の拡張モジュール解説紹介●

各クラウドサービスの対応状況クラウドサービスの拡張モジュール解説対応状況© 2019 SRA OSS, Inc. Japan2

クラウドサービスの拡張モジュール解説 BIG 3●

AWS (Amazon Web Service)●

Azure (Microsoft Azure)●

GCP (Google Cloud Platform)© 2019 SRA OSS, Inc. Japan3

マネージドサービスとしての拡張モジュール解説 PostgreSQL●AWS, Azure, GCP の拡張モジュール解説それぞれが PaaS として PostgreSQL
を提供している提供しているしている 括弧内は対応メジャーバージョン対応メジャーバージョン●

AWS:

Amazon RDS (PostgreSQL 10)●

Azure:

Azure Database for PostgreSQL (PostgreSQL 10)

●

GCP:

Cloud SQL for PostgreSQL (PostgreSQL 9.6)

© 2019 SRA OSS, Inc. Japan

4

PaaS として提供しているされる PostgreSQL●●

資材の調達や運用の手間はベンダーが代行・便利な仕の拡張モジュール解説調達や運用の手間はベンダーが代行・便利な仕や運用の手間はベンダーが代行・便利な仕運用できるの拡張モジュール解説手間はベンダーが代行・便利な仕は対応メジャーバージョンベンダーが代行・便利な仕仕組みを提供みを提供している提供している
ユーザはベンダーが提供する は対応メジャーバージョンベンダーが提供しているする PostgreSQL の拡張モジュール解説エンドポ

5

PostgreSQL の拡張モジュール解説拡張モジュール解説モジュール解説●

PostgreSQL の拡張モジュール解説コア機能に組み込まれていないプラグ機能に組み込まれていないプラグに組み込まれていないプラグ組みを提供み込まれていないプラグまれていな仕いプラグイン機能に組み込まれていないプラグ
●

●

●

●

移植用できるツール解説、解析ユーティリティ、利用者が限定さ解析ユーティリティ、利用者が限定さユーティリティ、解析ユーティリティ、利用者が限定さ利用できる者が限定さが限定さされている、解析ユーティリティ、利用者が限定さコア機能に組み込まれていないプラグ機能に組み込まれていないプラグに組み込まれていないプラグ含めるには実験的すぎるめるに組み込まれていないプラグは対応メジャーバージョン実験的すぎるすぎる
コア機能に組み込まれていないプラグ機能に組み込まれていないプラグと比較して有用性が劣っているわけではないして有用できる性が劣っているわけではないが劣っているわけではないっているわけで利用できるは対応メジャーバージョンな仕い

最新の の拡張モジュール解説 PostgreSQL 11 で利用できる 54 種類 + サードパーティー製
Amazon RDS, Azure Database for PostgreSQL, Cloud
SQL for PostgreSQL で利用できるもそれぞれ部分的すぎるに組み込まれていないプラグ対応© 2019 SRA OSS, Inc. Japan

6

本題
●

マネージドデータベースサービスで利用できる利用できるで利用できるきる
PostgreSQL の拡張モジュール解説拡張モジュール解説モジュール解説に組み込まれていないプラグついて●

各クラウドサービスの対応状況サービスの拡張モジュール解説対応状況は対応メジャーバージョン？

●

拡張モジュール解説モジュール解説の拡張モジュール解説うちオススメのものは？オススメの拡張モジュール解説もの拡張モジュール解説は対応メジャーバージョン？

●

運用できる向け・開発向けに分類して紹介け・開発向け・開発向けに分類して紹介けに組み込まれていないプラグ分類して紹介© 2019 SRA OSS, Inc. Japan7

運用できる: auto_explain
●

概要
●

●

時間はベンダーが代行・便利な仕がかかった SQL 文の実行計画を自動的にログ出力の拡張モジュール解説実行計画を自動的にログ出力を提供している自動的すぎるに組み込まれていないプラグログ出力
してくれる

用できる途
●

●

チューニングの拡張モジュール解説起点
大規模アプリケーションで最適化されていない ア機能に組み込まれていないプラグプリケーションで利用できる最適化されていない されていな仕い SQL を提供している
後から特定するから特定する特定さする–調査にために一時的に使うに組み込まれていないプラグために組み込まれていないプラグ一時的すぎるに組み込まれていないプラグ使うう© 2019 SRA OSS, Inc. Japan

8

運用できる: auto_explain
●

使うい方
●

postgresql.conf で利用できる設定さ–PostgreSQL 起動時に組み込まれていないプラグ auto_explain を提供しているロード（再起動で利用できる設定さ反映）

shared_preload_libraries = 'auto_explain’–

3 sec 以上実行に組み込まれていないプラグ時間はベンダーが代行・便利な仕の拡張モジュール解説かかる SQL を提供しているログ出力

auto_explain.log_min_duration = '3s'–

EXPLAIN ANALYZE を提供している行な仕う（高負荷注意、解析ユーティリティ、利用者が限定さデフォル解説トの の拡張モジュール解説 off 推奨）

auto_explain.log_analyze = on
© 2019 SRA OSS, Inc. Japan

9

運用できる: auto_explain●

サンプル解説: ログ出力内容
時間はベンダーが代行・便利な仕の拡張モジュール解説かかった SQL の拡張モジュール解説EXPLAIN の拡張モジュール解説出力結果がログに出力がログに組み込まれていないプラグ出力
される（正確には に組み込まれていないプラグは対応メジャーバージョン auto_explain.log_analyze=on なので  EXPLAIN ANALYZE の結果）

LOG: duration: 3.651 ms plan:
Query Text: SELECT count(*)
FROM pg_class, pg_index
WHERE oid = indrelid AND indisunique;
Aggregate (cost=16.79..16.80 rows=1 width=0) ↵(actual time=3.626..3.627 rows=1 loops=1)-> Hash Join (cost=4.17..16.55 rows=92 width=0) ↵(actual time=3.349..3.594 rows=92 loops=1)
Hash Cond: (pg_class.oid = pg_index.indrelid)-> Seq Scan on pg_class (cost=0.00..9.55 rows=255 width=4) ↵(actual time=0.016..0.140 rows=255 loops=1)-> Hash (cost=3.02..3.02 rows=92 width=4) ↵(actual time=3.238..3.238 rows=92 loops=1)
Buckets: 1024 Batches: 1 Memory Usage: 4kB-> Seq Scan on pg_index (cost=0.00..3.02 rows=92 width=4) ↵(actual time=0.008..3.187 rows=92 loops=1)
Filter: indisunique© 2019 SRA OSS, Inc. Japan10運用できる: pg_hint_plan
●

概要
●

●

ヒントの 句を使って を提供している使うって SQL の拡張モジュール解説実行計画を自動的にログ出力を提供しているクライア機能に組み込まれていないプラグントの が制御できるで利用できるきる

用できる途
●

チューニング●性が劣っているわけではない能に組み込まれていないプラグの拡張モジュール解説速度より性能の安定を重視より性能の安定を重視性が劣っているわけではない能に組み込まれていないプラグの拡張モジュール解説安定さを提供している重視●

実行計画を自動的にログ出力の拡張モジュール解説変化されていない に組み込まれていないプラグよる突然の性能変動を避けたいの拡張モジュール解説性が劣っているわけではない能に組み込まれていないプラグ変動を提供している避けたいけたい© 2019 SRA OSS, Inc. Japan11

運用できる: pg_hint_plan
●

使うい方
●

利用できるしたいデータベースで利用できるエクステンション登録

db1=# CREATE EXTENSION pg_hint_plan;●

DB 接続セッションで セッションで利用できる pg_hint_plan を提供しているロード

db1=# LOAD ‘pg_hint_plan’;–●postgresql.conf で利用できる pg_hint_plan_enable_hint_table = on しておく必要がある

ヒントの 句を使って の拡張モジュール解説指定さ方法●

SQL に組み込まれていないプラグコメントの 指定さ●ヒントの 用できるテーブル解説に組み込まれていないプラグ登録© 2019 SRA OSS, Inc. Japan12

運用できる: pg_hint_plan●

指定さで利用できるきるヒントの の拡張モジュール解説種類
スキャン方式

テーブル解説の拡張モジュール解説スキャン方式を提供している指定さ結合順序

複数テーブルをどの順で結合するか指定テーブル解説を提供しているどの拡張モジュール解説順で利用できる結合するか指定さ結合方式

テーブル解説結合の拡張モジュール解説方式を提供している指定さ見積件数テーブルをどの順で結合するか指定補正

テーブル解説結合結果がログに出力の拡張モジュール解説件数テーブルをどの順で結合するか指定見積もり性能の安定を重視を提供している補正

パラレル解説実行

パラレル解説実行の拡張モジュール解説強制 or 禁止

設定さパラメータ

SET コマンドで利用できる指定さで利用できるきるパラメータを提供している設定さ© 2019 SRA OSS, Inc. Japan13

運用できる: pg_hint_plan●

サンプル解説: SQL で利用できるヒントの 句を使って を提供している指定さ

db1=# /*+ HashJoin(a b) SeqScan(a) */EXPLAIN ANALYZE
SELECT * FROM pgbench_branches b
JOIN pgbench_accounts a ON b.bid = a.bid ORDER BY a.aid;
QUERY PLAN-----------------------------------------------------------------------------------------------Sort (cost=563632.07..566132.07 rows=1000000 width=465)↵(actual time=942.519..1081.707 rows=1000000 loops=1)
Sort Key: a.aid
Sort Method: external sort Disk: 119264kB-> Hash Join (cost=1.23..40145.22 rows=1000000 width=465)↵(actual time=0.038..395.556 rows=1000000 loops=1)
Hash Cond: (a.bid = b.bid)-> Seq Scan on pgbench_accounts a (cost=0.00..26394.00 rows=1000000 width=97)↵(actual time=0.020..103.247 rows=1000000 loops=1)-> Hash (cost=1.10..1.10 rows=10 width=364)↵(actual time=0.010..0.010 rows=10 loops=1)
Buckets: 1024 Batches: 1 Memory Usage: 9kB-> Seq Scan on pgbench_branches b (cost=0.00..1.10 rows=10 width=364)↵(actual time=0.003..0.007 rows=10 loops=1)
Planning time: 0.134 ms
Execution time: 1201.389 ms© 2019 SRA OSS, Inc. Japan

14

運用できる: pg_prewarm●

概要
任意の拡張モジュール解説テーブル解説かインデックスを提供している共有バッファまたはまたは対応メジャーバージョン
OS キャッシュに組み込まれていないプラグ載せるせる

●

用できる途
●

性が劣っているわけではない能に組み込まれていないプラグ向け・開発向けに分類して紹介上●

使ういどころは対応メジャーバージョン DB の拡張モジュール解説再起動直後から特定する●

早期にデータをメモリヒットさせたいに組み込まれていないプラグデータを提供しているメモリヒットの させたい●

バッチの拡張モジュール解説前処理で時間短縮で利用できる時間はベンダーが代行・便利な仕短縮© 2019 SRA OSS, Inc. Japan

16

運用できる: pg_prewarm
●

使うい方
●

利用できるしたいデータベースで利用できるエクステンション登録

db1=# CREATE EXTENSION pg_prewarm;

運用できる: pg_prewarm●

サンプル解説●

pg_prewarm 前●

db1=# SELECT count(*)
FROM
pg_buffercache
WHERE
Relfilenode = (SELECTrelfilenode
FROM pg_class
WHERE relname = 'pgbench_accounts');count------0(1 row)●pg_prewarm 後から特定する

db1=# SELECT count(*)
FROM
pg_buffercache
WHERE
Relfilenode = (SELECTrelfilenode
FROM pg_class
WHERE relname = 'pgbench_accounts');count------16295(1 row)pg_prewarm

db1=# SELECT * FROM pg_prewarm('pgbench_accounts');pg_prewarm-----------163935(1 row)© 2019 SRA OSS, Inc. Japan18

運用できる: pg_repack
●

概要
●

●

オンラインで利用できるテーブル解説や運用の手間はベンダーが代行・便利な仕インデックスの拡張モジュール解説再編成ができがで利用できるき
る

用できる途
●

メンテナンス●

サービス中にどうしても に組み込まれていないプラグどうしても VACUUM FULL したい●

サービス中にどうしても に組み込まれていないプラグどうしても REINDEX したい© 2019 SRA OSS, Inc. Japan

19

運用できる: pg_repack
●

使うい方
●

利用できるしたいデータベースで利用できるエクステンション登録

db1=# CREATE EXTENSION pg_repack;●

クライア機能に組み込まれていないプラグントの 端末に に組み込まれていないプラグ pg_repack を提供しているインストの ール解説

$ wget https://github.com/reorg/pg_repack/archive/ver_1.4.4.tar.gz$ tar xf ver_1.4.4.tar.gz$ cd pg_repack_1.4.4$ make$ sudo make install;© 2019 SRA OSS, Inc. Japan20

運用できる: pg_repack●

サンプル解説: エンドポイントの に組み込まれていないプラグ向け・開発向けに分類して紹介けて pg_repack●

オンライン VACUUM FULL と REINDEX$ pg_repack --table=t1 –dbname=db2 --username=postgres↵--host=... --port=...
●オンライン CLUSTER と REINDEX$ pg_repack --order-by=col_id –table=t1↵--dbname=db2 -–username=postgres --host=... --port=...
●Db2 の拡張モジュール解説可能に組み込まれていないプラグな仕テーブル解説に組み込まれていないプラグオンライン CLUSTER、解析ユーティリティ、利用者が限定さ全テーテー
ブル解説に組み込まれていないプラグオンライン VADUUM FULL と REINDEX$ pg_repack --dbname=db2 –-username=postgres --host=... --port=...

© 2019 SRA OSS, Inc. Japan

21

運用できる: pg_repack●

注意点 1/2:●●●

対象テーブルとインデックスの テーブル解説とインデックスの拡張モジュール解説 2 倍以上の拡張モジュール解説ディスク空き領域が必要。が必要。
pg_repack の拡張モジュール解説実行中にどうしても に組み込まれていないプラグは対応メジャーバージョン、解析ユーティリティ、利用者が限定さVACUUM と ANALYZE 以外の拡張モジュール解説 DDL を提供している実行しては対応メジャーバージョンいけな仕い。
実行対象テーブルとインデックスの テーブル解説に組み込まれていないプラグは対応メジャーバージョン、解析ユーティリティ、利用者が限定さ主キー、または キー、解析ユーティリティ、利用者が限定さまたは対応メジャーバージョン NOT NULL 属
性が劣っているわけではないとユニークインデックスを提供している持つカラムが少なくともつカラムが少なくともが少なくともな仕くとも一つ必須。
© 2019 SRA OSS, Inc. Japan

22

運用できる: pg_repack●

注意点 2/2:●●

一時テーブル解説、解析ユーティリティ、利用者が限定さまたは対応メジャーバージョン GiST インデックスがクラスタイ
ンデックスとな仕っているテーブル解説は対応メジャーバージョン操作の対象外。の拡張モジュール解説対象テーブルとインデックスの 外。
-T (--wait-timeout) で利用できる指定さするタイムが少なくともア機能に組み込まれていないプラグウトの 時間はベンダーが代行・便利な仕（デフォル解説トの 60秒）を提供している超えて えて pg_repack がロック取得がでがで利用できる
きな仕い場合に組み込まれていないプラグは対応メジャーバージョン他プロセスを終了させる動作が生じプロセスを提供している終了させる動作が生じさせる動作の対象外。が生じじる。
–

ロック取得がでで利用できるきな仕かった場合に組み込まれていないプラグ pg_repack の拡張モジュール解説方を提供している中にどうしても 断させるさせるに組み込まれていないプラグは対応メジャーバージョン -D (--no-kill-backend) を提供している指定さする。
© 2019 SRA OSS, Inc. Japan23

運用できる: pg_stat_statements
●

概要
●

●

実行された SQL の拡張モジュール解説種類、解析ユーティリティ、利用者が限定さ実行回数テーブルをどの順で結合するか指定、解析ユーティリティ、利用者が限定さ実行時間はベンダーが代行・便利な仕な仕どを提供している集計・記録してくれる用できる途●

チューニングの拡張モジュール解説起点●

ボトの ル解説ネックとな仕っている SQL を提供している見つけたい●

PostgreSQL ログに組み込まれていないプラグ SQL を提供している大量に出したくないに組み込まれていないプラグ出したくな仕い© 2019 SRA OSS, Inc. Japan24

運用できる: pg_stat_statements
●

使うい方
●

postgresql.conf で利用できる設定さ–PostgreSQL 起動時に組み込まれていないプラグ pg_stat_statements を提供しているロード

shared_preload_libraries = 'pg_stat_statements’●

利用できるしたいデータベースで利用できるエクステンション登録

db1=# CREATE EXTENSION pg_stat_statements;© 2019 SRA OSS, Inc. Japan25

運用できる: pg_stat_statements●

サンプル解説

db1=# SELECT query, calls, total_time, ROWS,
100.0 * shared_blks_hit / nullif (shared_blks_hit + shared_blks_read, 0) AS hit_raito
FROM pg_stat_statements ORDER BY total_time DESC LIMIT 5;query| calls | total_time | rows | hit_raito------------------------------------------+-------+------------+-------+----------UPDATE pgbench_accounts SET abalance = a↵| 72294 | 19389.5610 | 72294 | 86.72913
balance + ? WHERE aid = ?;||||UPDATE pgbench_branches SET bbalance = b↵| 72294 | 4499.92100 | 72294 | 100.00000
balance + ? WHERE bid = ?;||||UPDATE pgbench_tellers SET tbalance = tb↵| 72294 | 2607.26099 | 72294 | 100.00000
alance + ? WHERE tid = ?;||||SELECT abalance FROM pgbench_accounts WH↵| 72294 | 1979.69899 | 72294 | 100.00000
ERE aid = ?;||||INSERT INTO pgbench_history (tid, bid, a↵| 72294 | 1381.01899 | 72294 | 99.36885
id, delta, mtime) VALUES (?, ?, ?, ?, CU↵||||RRENT_TIMESTAMP);||||(5 rows)© 2019 SRA OSS, Inc. Japan26

運用できる: pgstattuple
●

概要
●

●

テーブル解説の拡張モジュール解説行単位の統計情報やインデックスの統計情の拡張モジュール解説統計情報やインデックスの統計情や運用の手間はベンダーが代行・便利な仕インデックスの拡張モジュール解説統計情報やインデックスの統計情が分かる（統計情報やインデックスの統計情に組み込まれていないプラグは対応メジャーバージョン不要領域が必要。情報やインデックスの統計情も含めるには実験的すぎるまれる）

用できる途
●

●

メンテナンスVACUUM や運用の手間はベンダーが代行・便利な仕インデックス再構築のタイミングを主体的の拡張モジュール解説タイミングを提供している主キー、または 体的すぎるに組み込まれていないプラグ判断させるしたい© 2019 SRA OSS, Inc. Japan28

運用できる: pgstattuple
●

使うい方
●

利用できるしたいデータベースで利用できるエクステンション登録

db1=# CREATE EXTENSION pgstattuple;●●

関数テーブルをどの順で結合するか指定が提供しているされる

指定さテーブル解説の拡張モジュール解説行レベル解説情報やインデックスの統計情●

pgstattuple(regclass) returns record
–

●

●

●

pgstatindex(regclass) returns record

全テー件走査にために一時的に使うが発生じ–

pgstattuple_approx(regclass) returns record–

指定さテーブル解説の拡張モジュール解説インデックス情報やインデックスの統計情●

B-tree 向け・開発向けに分類して紹介け

pgstatginindex(regclass) returns record

全テー件走査にために一時的に使うを提供している避けたいけて近似値を返すを提供している返すす–© 2019 SRA OSS, Inc. Japan

GIN 向け・開発向けに分類して紹介け

29

運用できる: pgstattuple●

サンプル解説: テーブル解説断させる片化されていない の拡張モジュール解説確には 認 SQL

db1=# SELECT
objectname, pg_size_pretty(pg_relation_size(objectname)) AS total_size, app.approx_tuple_count, app.approx_tuple_percent, app.dead_tuple_count, app.dead_tuple_percent, app.approx_free_space, app.approx_free_percent
FROM (
SELECT*, quote_ident(schemaname) || '.' || quote_ident(relname) AS objectname
FROM
pg_stat_user_tables) AS t, pgstattuple_approx(objectname::regclass) AS app
ORDER BY app.approx_free_percent DESC;●

pg_stat_user_tables から特定するテーブル解説情報やインデックスの統計情を提供している取得がでしてテー
ブル解説毎に行レベルの統計情報を表示に組み込まれていないプラグ行レベル解説の拡張モジュール解説統計情報やインデックスの統計情を提供している表示© 2019 SRA OSS, Inc. Japan30

運用できる: pgstattuple●

サンプル解説: テーブル解説断させる片化されていない の拡張モジュール解説確には 認 SQL 実行結果がログに出力-[ RECORD 1 ]--------+-----------------------objectname| public.pgbench_branches // テーブル名名
total_size| 8192 bytes// テーブル名サイズ
approx_tuple_count| 100// 推定有効行数
approx_tuple_percent | 53.90625// 有効行数の割合
dead_tuple_count| 0// 無効行数
dead_tuple_percent| 0// 無効行数の割合
approx_free_space| 3776// 推定空き容量サイズき容量サイズ容量サイズサイズ
approx_free_percent | 46.09375// 空き容量サイズき容量サイズ容量サイズの割合（後略）●

テーブル解説サイズ（大）& 空き容量に出したくないの拡張モジュール解説割合（大）–●テーブル解説の拡張モジュール解説肥大化されていない  → VACUUM FULL の拡張モジュール解説必要あり性能の安定を重視

テーブル解説サイズ（大）& 無効行数テーブルをどの順で結合するか指定の拡張モジュール解説割合（大）–VACUUM が実行されていな仕い → VACUUM 実行か、解析ユーティリティ、利用者が限定さ阻害要因を取り除くを提供している取り性能の安定を重視除くく© 2019 SRA OSS, Inc. Japan31

運用できる: pgstattuple●

サンプル解説: インデックス断させる片化されていない の拡張モジュール解説確には 認 SQL

db1=# SELECT
objectname, pg_size_pretty(pg_relation_size(objectname)) AS total_size, app.tree_level, app.index_size, app.root_block_no, app.internal_pages, app.leaf_pages, app.empty_pages, app.deleted_pages, app.avg_leaf_density, app.leaf_fragmentation
FROM (
SELECT*, quote_ident(schemaname) || '.' || quote_ident(indexrelname) AS objectname
FROM
pg_stat_user_indexes) AS t, pgstatindex (objectname::regclass) AS app
ORDER BY
app.leaf_fragmentation DESC;●

pg_stat_user_indexes から特定するインデックス情報やインデックスの統計情を提供している取得がでしてインデックス毎に行レベルの統計情報を表示に組み込まれていないプラグ行レベル解説の拡張モジュール解説統計情報やインデックスの統計情を提供している表示© 2019 SRA OSS, Inc. Japan32

運用できる: pgstattuple●

サンプル解説: インデックス断させる片化されていない の拡張モジュール解説確には 認 SQL 実行結果がログに出力-[ RECORD 1 ]------+----------------------------objectname| public.pgbench_tellers_pkey // インデックス名名
total_size| 56 kB// インデックス名サイズ
tree_level| 1// ル名ートページのツリーレベルのツリーレベル名
index_size| 57344// バイト単位のインデックスサイズのインデックス名サイズ
root_block_no| 3// ル名ートページのツリーレベルの場所
internal_pages| 1// 上位のインデックスサイズレベル名ページのツリーレベル数
leaf_pages| 5// リーフページのツリーレベル数
empty_pages| 0// 空き容量サイズページのツリーレベル数
deleted_pages| 0// 削除ページ数ページのツリーレベル数
avg_leaf_density| 49.31// リーフページのツリーレベルの平均密度
leaf_fragmentation | 40// リーフページのツリーレベルの断片化
（後略）

●

●

avg_leaf_density（大）、解析ユーティリティ、利用者が限定さleaf_fragmentation（小）、解析ユーティリティ、利用者が限定さtree_level（小）→ 望ましいましい
リーフページの拡張モジュール解説断させる片化されていない （大）→ REINDEX または対応メジャーバージョン CREATE INDEXCONCURRENTLY の拡張モジュール解説必要あり性能の安定を重視© 2019 SRA OSS, Inc. Japan33

開発: pg_trgm
●

概要
●

●

3-gram 方式の拡張モジュール解説全テー文の実行計画を自動的にログ出力検索機能に組み込まれていないプラグ

用できる途
●

全テー文の実行計画を自動的にログ出力検索●

2 文の実行計画を自動的にログ出力字の全文検索は行わないの拡張モジュール解説全テー文の実行計画を自動的にログ出力検索は対応メジャーバージョン行わな仕い●

検索ワードが何度より性能の安定を重視も登場しな仕い短めの拡張モジュール解説ドキュメントの が対象テーブルとインデックスの © 2019 SRA OSS, Inc. Japan34

開発: pgcrypto
●

概要
●

●

データを提供している暗号化されていない 、解析ユーティリティ、利用者が限定さ複合するための拡張モジュール解説関数テーブルをどの順で結合するか指定を提供している提供している

用できる途
●

セキュリティ

●データの拡張モジュール解説情報やインデックスの統計情漏洩に対応したいに組み込まれていないプラグ対応したい●

PostgreSQL 独自の拡張モジュール解説 SQL を提供している発行してもいい© 2019 SRA OSS, Inc. Japan

35

開発: pl/pgsql
●

概要
●

●

PostgreSQL 独自言語でユーザ定義関数を作成できるで利用できるユーザはベンダーが提供する 定さ義関数テーブルをどの順で結合するか指定を提供している作の対象外。成ができで利用できるきる

用できる途
●

DB サーバ側で で利用できる SQL より性能の安定を重視も複雑な処理や計算をしたいな仕処理で時間短縮や運用の手間はベンダーが代行・便利な仕計算をしたいを提供しているしたい●

DB サーバ側で の拡張モジュール解説処理で時間短縮を提供しているア機能に組み込まれていないプラグプリケーションから特定する隠蔽したいしたい© 2019 SRA OSS, Inc. Japan36

補足: その拡張モジュール解説他プロセスを終了させる動作が生じの拡張モジュール解説 pl/○○系の対応状況の拡張モジュール解説対応状況●

pl/coffee

●

pl/ls

●

pl/perl© 2019 SRA OSS, Inc. Japan

37

開発: PostGIS
●

概要
●

●

緯度より性能の安定を重視経度より性能の安定を重視に組み込まれていないプラグよる位の統計情報やインデックスの統計情置を持った地点や経路線、領域などを提供している持つカラムが少なくともった地点や運用の手間はベンダーが代行・便利な仕経路線、解析ユーティリティ、利用者が限定さ領域が必要。な仕どの拡張モジュール解説要素を操作できるを提供している操作の対象外。で利用できるきる

用できる途
●

地理で時間短縮情報やインデックスの統計情システムが少なくともを提供している実現したいしたい© 2019 SRA OSS, Inc. Japan38

対応状況一覧
auto_explain

https://www.postgresql.jp/document/10/html/auto-explain.html

pg_hint_plan

http://pghintplan.osdn.jp/pg_hint_plan-ja.html

pg_prewarm

https://www.postgresql.jp/document/10/html/pgprewarm.html

pg_repackhttps://github.com/reorg/pg_repack

pg_stat_statements

https://www.postgresql.jp/document/10/html/pgstatstatements.html

pgstattuple

https://www.postgresql.jp/document/10/html/pgstattuple.html

pg_trgm

https://www.postgresql.jp/document/10/html/pgtrgm.html

pgcrypto

https://www.postgresql.jp/document/10/html/pgcrypto.html

pl/pgsql

https://www.postgresql.jp/document/10/html/plpgsql.html

PostGIShttp://postgis.net/

postgres_fdw

https://www.postgresql.jp/document/10/html/postgres-fdw.html© 2019 SRA OSS, Inc. Japan

39

補足
●

マネージドデータベースサービスで利用できる利用できるで利用できるきな仕い
PostgreSQL の拡張モジュール解説拡張モジュール解説モジュール解説に組み込まれていないプラグついて●

拡張モジュール解説モジュール解説の拡張モジュール解説うちオススメのものは？オススメの拡張モジュール解説もの拡張モジュール解説は対応メジャーバージョン？

な仕ぜ利用できない？利用できるで利用できるきな仕い？
●

いずれもサードパーティー製の拡張モジュール解説拡張モジュール解説モジュール解説●

DB サーバ側で に組み込まれていないプラグインストの ール解説作の対象外。業が発生してしまうが発生じしてしまう●

マネージドデータベースサービスな仕の拡張モジュール解説で利用できる SSH 接続セッションで は対応メジャーバージョン不可能に組み込まれていないプラグ© 2019 SRA OSS, Inc. Japan40

運用できる: pg_dbms_stats
●

概要
●

●

実行計画を自動的にログ出力を提供しているユーザはベンダーが提供する が固定さで利用できるきる

用できる途
●

チューニング●性が劣っているわけではない能に組み込まれていないプラグの拡張モジュール解説速度より性能の安定を重視より性能の安定を重視性が劣っているわけではない能に組み込まれていないプラグの拡張モジュール解説安定さを提供している重視●

実行計画を自動的にログ出力の拡張モジュール解説変化されていない に組み込まれていないプラグよる突然の性能変動を避けたいの拡張モジュール解説性が劣っているわけではない能に組み込まれていないプラグ変動を提供している避けたいけたい© 2019 SRA OSS, Inc. Japan

41

運用できる: pg_bulkload
●

概要
●

●

高速な仕データローダツール解説

用できる途
●

とに組み込まれていないプラグかく早くデータを提供しているロードさせたい

●

サーバ移行

●

定さ期にデータをメモリヒットさせたい的すぎるに組み込まれていないプラグ溜まったデータをテーブルに流し込むまったデータを提供しているテーブル解説に組み込まれていないプラグ流し込むし込まれていないプラグむ●

テストの 用できるの拡張モジュール解説大量に出したくないの拡張モジュール解説データを提供している少なくともしで利用できるも早く読み込ませたみ込まれていないプラグませたい© 2019 SRA OSS, Inc. Japan42

開発: pg_bigm
●

概要
●

●

2-gram 方式の拡張モジュール解説全テー文の実行計画を自動的にログ出力検索機能に組み込まれていないプラグ

用できる途
●

全テー文の実行計画を自動的にログ出力検索© 2019 SRA OSS, Inc. Japan

43