SlideShare a Scribd company logo
© 2022 NTT DATA Corporation
pg_hint_plan を知る
2022/12/20 第37回 PostgreSQLアンカンファレンス@オンライン
株式会社NTTデータ 技術開発本部
葛木優太
© 2022 NTT DATA Corporation 2
自己紹介
• 葛木優太 (@katsuragi_yuta)
• NTTデータ 技術開発本部 所属
• 新卒1年目
© 2022 NTT DATA Corporation 3
目次
• pg_hint_plan の概要
• pg_hint_plan とは
• pg_hint_plan の使い方
• pg_hint_plan の仕組み
© 2022 NTT DATA Corporation 4
01
pg_hint_plan の概要
© 2022 NTT DATA Corporation 5
pg_hint_plan とは
• pg_hint_plan とは
• NTT OSS センタが中心となって開発している PostgreSQL のエクステンション
• クエリにヒントを指定することで、SQL や GUC パラメータを変更せず実行計画を制御
• 現時点 (2022/12/20) での最新版は 1.5 で PostgreSQL 15 をサポート
• 例えば次のようなことが可能
• 特定のテーブルのスキャン方法を指定
• 特定のテーブル同士の結合方法を指定
• 特定のテーブル同士の結合順序を指定
• ヒントを記述した SQL 文を処理する間だけ GUC パラメータを変更
# /*+ MergeJoin(t1 t2) */
# SELECT * FROM t1, t2 WHERE t1.x = t2.x;
t1 と t2 の結合方法を指定するヒント句
本資料では pg_hint_plan 1.4 と
PostgreSQL 14 を扱う
© 2022 NTT DATA Corporation 6
pg_hint_plan とは | ヒントとヒント句
• pg_hint_plan では SQL に対してヒントを指定して実行計画を制御
• ヒントはヒント句から構成される
• pg_hint_plan では 2 つの場所にヒントを記述可能
• SQL のコメント
• hint table
MergeJoin(t1 t2) IndexScan(t1 t1_pkey) IndexScan(t2 t2_pkey)
t1 と t2 の結合方法を指定するヒント句 t1 のスキャン方法を指定するヒント句 t2 のスキャン方法を指定するヒント句
これら 3 つのヒント句をまとめてヒントと呼ぶ
© 2022 NTT DATA Corporation 7
pg_hint_plan とは | SQL のコメントとしてのヒント
• SQL の先頭にコメントの形式でヒントを記述する方法
• コメントは /*+ で開始し、*/ で終わる必要がある
QUERY PLAN
----------------------------------------------------------------------------
Merge Join (cost=0.42..19.72 rows=100 width=16)
Merge Cond: (t1.id = t2.id)
-> Index Scan using t1_pkey on t1 (cost=0.14..13.64 rows=100 width=8)
-> Index Scan using t2_pkey on t2 (cost=0.28..43.27 rows=1000 width=8)
=# /*+ MergeJoin(t1 t2) IndexScan(t1 t1_pkey) IndexScan(t2 t2_pkey) */
-# EXPLAIN SELECT * FROM t1,t2 WHERE t1.id = t2.id;
© 2022 NTT DATA Corporation 8
pg_hint_plan とは | hint table
• SQL に対するヒント句を hint table (hint_plan.hints) に登録
• ヒントと、ヒントの適用対象となるクエリを保持するテーブル
• デフォルトではスーパーユーザのみ編集可能
• norm_query_string では空白、セミコロンの有無も区別される
• hint table に記述したヒントは、コメントより優先されるが、その場合、コメント付きの SQL を登録する必要がある
=# INSERT INTO hint_table.hints(norm_query_string, application_name, hints) VALUES
-# (‘EXPLAIN SELECT * FROM t1 WHERE t1.id = ?;’,
-# ‘’,
-# 'SeqScan(t1)’
-# );
© 2022 NTT DATA Corporation 9
pg_hint_plan の使い方 | インストールと設定
• ビルド
• make; make install
• postgresql.conf
• hint table を使用する場合の追加の設定
shared_preload_libraries = ‘pg_hint_plan’
pg_hint_plan.enable_hint = on
=# CREATE EXTENSION pg_hint_plan;
=# SET pg_hint_plan.enable_hint_table TO on;
(*) その他の pg_hint_plan 固有の GUC パラメータはドキュメントを参照
https://github.com/ossc-db/pg_hint_plan/blob/master/doc/pg_hint_plan-ja.html
デフォルトで on に設定される
© 2022 NTT DATA Corporation 10
pg_hint_plan の使い方
• 簡単にヒント句の使い方を紹介
• ヒント句の一覧についてはドキュメントを参照 (*)
(*) https://github.com/ossc-db/pg_hint_plan/blob/master/doc/hint_list-ja.html
© 2022 NTT DATA Corporation 11
pg_hint_plan の使い方 | スキャン方法の指定
• SeqScan を指定する場合
• IndexScan を指定する場合
=# /*+ SeqScan(t1) */
-# EXPLAIN SELECT * FROM t1 WHERE t1.id = 10;
QUERY PLAN
--------------------------------------------------
Seq Scan on t1 (cost=0.00..2.25 rows=1 width=8)
Filter: (id = 10)
=# /*+ IndexScan(t1 t1_pkey) */
-# EXPLAIN SELECT * FROM t1 WHERE t1.id = 10;
QUERY PLAN
------------------------------------------------------------------
Index Scan using t1_pkey on t1 (cost=0.14..8.16 rows=1 width=8)
Index Cond: (id = 10)
使用したいインデックス名のリストを空白区切りで記述
© 2022 NTT DATA Corporation 12
pg_hint_plan の使い方 | 結合方法の指定
結合方法と、対象とするテーブルを記述
• NestLoop(t1 t2) は t1 と t2 の結合を NestLoop で実行することを指定
• NestLoop(t1 t2) と NestLoop(t2 t1) は等価
• 3 テーブル以上の結合が必要な場合、NestLoop(t1 t2) は t1 と t2 の結合を強制するわけではない
=# /*+ NestLoop(t1 t2) */
-# EXPLAIN SELECT * FROM t1,t2 WHERE t1.id = t2.id;
QUERY PLAN
------------------------------------------------------------------------
Nested Loop (cost=0.28..71.25 rows=100 width=16)
-> Seq Scan on t1 (cost=0.00..2.00 rows=100 width=8)
-> Index Scan using t2_pkey on t2 (cost=0.28..0.69 rows=1 width=8)
Index Cond: (id = t1.id)
© 2022 NTT DATA Corporation 13
pg_hint_plan の使い方 | 結合方法の指定
結合方法と、対象とするテーブルを記述
• NestLoop(t1 t2 t3) は t1、t2、t3 の結合に対して有効
• (t1 t2)、(t1 t3)、(t2 t3) の結合には有効ではない
=# /*+ NestLoop(t1 t2 t3) */
-# EXPLAIN SELECT * FROM t1,t2,t3 WHERE t1.id = t2.id and t2.id = t3.id;
QUERY PLAN
------------------------------------------------------------------------------------
Nested Loop (cost=5.88..41.44 rows=100 width=24)
Join Filter: (t1.id = t2.id)
-> Merge Join (cost=5.61..10.54 rows=100 width=16)
Merge Cond: (t3.id = t1.id)
-> Index Scan using t3_pkey on t3 (cost=0.29..318.29 rows=10000 width=8)
-> Sort (cost=5.32..5.57 rows=100 width=8)
Sort Key: t1.id
-> Seq Scan on t1 (cost=0.00..2.00 rows=100 width=8)
-> Index Scan using t2_pkey on t2 (cost=0.28..0.30 rows=1 width=8)
Index Cond: (id = t3.id)
© 2022 NTT DATA Corporation 14
pg_hint_plan の使い方 | 結合方法の指定
結合方法と、対象とするテーブルを記述
• NestLoop(t1 t2 t3) は t1、t2、t3 の結合に対して有効
• (t1 t2)、(t1 t3)、(t2 t3) の結合には有効ではない
=# /*+ NestLoop(t1 t2 t3) */
-# EXPLAIN SELECT * FROM t1,t2,t3 WHERE t1.id = t2.id and t2.id = t3.id;
Merge Join t2
IndexScan
t3 t1
IndexScan SeqScan
左のプランツリーに含まれるテーブル: t1、t3
右のプランツリーに含まれるテーブル: t2
t3 t1
IndexScan SeqScan
左のプランツリーに含まれるテーブル: t3
右のプランツリーに含まれるテーブル: t1
NestLoop(t1 t2 t3) の適用対象
⋈
⋈
NestLoop(t1 t2 t3) の適用対象ではない
左右のプランツリーに含まれるテーブルが
t1、t2、t3 だけであるということ
© 2022 NTT DATA Corporation 15
pg_hint_plan の使い方 | 結合順の指定
• Leading 句により結合順を指定
• 指定方法は 2 種類
• 結合順のみ指定
• 外部表と内部表を含めて結合順を指定
© 2022 NTT DATA Corporation 16
pg_hint_plan の使い方 | 結合順の指定
結合順のみを指定する場合
• Leading 句に結合したいテーブルを、その順に記述
• Leading(t1 t2 t3) により、t1 と t2 の結合を実施してから t3 との結合を実施する
=# /*+ Leading(t1 t2 t3) */
-# EXPLAIN SELECT * FROM t1,t2,t3 WHERE t1.id = t2.id and t2.id = t3.id;
QUERY PLAN
----------------------------------------------------------------------------------
Merge Join (cost=5.88..16.61 rows=100 width=24)
Merge Cond: (t1.id = t3.id)
-> Merge Join (cost=5.60..11.65 rows=100 width=16)
Merge Cond: (t2.id = t1.id)
-> Index Scan using t2_pkey on t2 (cost=0.28..43.27 rows=1000 width=8)
-> Sort (cost=5.32..5.57 rows=100 width=8)
Sort Key: t1.id
-> Seq Scan on t1 (cost=0.00..2.00 rows=100 width=8)
-> Index Scan using t3_pkey on t3 (cost=0.29..318.29 rows=10000 width=8)
© 2022 NTT DATA Corporation 17
pg_hint_plan の使い方 | 結合順の指定
外部表と内部表を含めて結合順を指定する場合
• Leading 句で明示的に外部表と内部表を指定
Leading(( t1 (t3 t2) ))
Leading(( outer-table-set inner-table-set ))
outer-table-set := table-set
inner-table-set := table-set
table-set := table-name | (outer-table-set inner-table-set)
ヒント句の書き方は以下
ただし、
例)
t2
t3
t1
⋈
⋈
© 2022 NTT DATA Corporation 18
pg_hint_plan の使い方 | 結合順の指定
外部表と内部表を含めて結合順を指定する場合
• Leading 句で明示的に外部表と内部表を指定
=# /*+ Leading(( t1 (t2 t3) )) NestLoop(t1 t2 t3) NestLoop(t2 t3) */
-# EXPLAIN SELECT * FROM t1,t2,t3 WHERE t1.id = t2.id and t2.id = t3.id;
QUERY PLAN
------------------------------------------------------------------------------------
Nested Loop (cost=0.29..2122.00 rows=100 width=24)
Join Filter: (t2.id = t1.id)
-> Seq Scan on t1 (cost=0.00..2.00 rows=100 width=8)
-> Materialize (cost=0.29..622.50 rows=1000 width=16)
-> Nested Loop (cost=0.29..617.50 rows=1000 width=16)
-> Seq Scan on t2 (cost=0.00..15.00 rows=1000 width=8)
-> Index Scan using t3_pkey on t3 (cost=0.29..0.60 rows=1 width=8)
Index Cond: (id = t2.id)
(t2 t3)
t1 (t2 t3)
© 2022 NTT DATA Corporation 19
02
pg_hint_plan の仕組み
© 2022 NTT DATA Corporation 20
ここから
• 以下の2点に着目し、pg_hint_plan の動作イメージを追う
• どこでヒントが解析されるか
• ヒントの情報からどのようにプランナを制御するか
• スキャン方法の指定
• 結合方法の指定
• 結合順序の指定
• 前提
• SQL は /*+ HINT */ SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.id = t3.id
共通する大まかな方針は、
適切なタイミングで適切に GUC パラメータを変更する
© 2022 NTT DATA Corporation 21
PostgreSQL のクエリ処理系と pg_hint_plan の関係
パーサ
プランナ
エグゼキュータ
SQL
実行結果
アクセスパスを列挙
結合方法・順序を探索
pg_hint_plan が有効でない場合
© 2022 NTT DATA Corporation 22
PostgreSQL のクエリ処理系と pg_hint_plan の関係
パーサ
プランナ
エグゼキュータ
SQL
実行結果
アクセスパスを列挙
結合方法・順序を探索
pg_hint_plan が有効な場合
ヒントの解析
ヒント句のための処理
(GUC の変更など)
pg_hint_plan
pg_hint_plan
ヒント句のための処理
(GUC の変更など)
pg_hint_plan
© 2022 NTT DATA Corporation 23
t1
Merge
Merge
t2
t3 …
t2
NestLoop
NestLoop
t3
t1
プランナの動作イメージ | pg_hint_plan が有効でない場合
…
Hash
t2 t3
Merge
t2 t3
NestLoop
t2 t3
…
結合方法・結合順を探索
エグゼキュータへ
t1 t2 t3
IndexScan
SeqScan
アクセスパスを列挙
パーサ
Hash
t1 t2
Merge
t1 t2
NestLoop
t1 t2
… …
© 2022 NTT DATA Corporation 24
プランナの動作イメージ | pg_hint_plan が有効な場合
/*+ HINT */
SELECT ...
FROM t1,t2,t3
WHERE ...
…
t1
NestLoop
NestLoop
t2
t3
GUC
enable_nestloop on
enable_mergejoin off
enable_hashjoin off
…
Hash
t2 t3
Merge
t2 t3
NestLoop
t2 t3
…
NestLoop
t1 t2
GUC
enable_nestloop on
enable_mergejoin off
enable_hashjoin off
…
結合方法・結合順を探索
ヒントの解析
エグゼキュータへ
t1 t2 t3
IndexScan
SeqScan
GUC
enable_seqscan on
enable_indexscan off
...
t1 t2 t3
SeqScan
t1 t2 t3
アクセスパスを列挙
パーサ
…
© 2022 NTT DATA Corporation 25
ヒントの解析
• planner_hook で実施
• ヒント句に対応する構造体を作成
• コメントを先頭から読んでいき、キーワード (e.g. SeqScan) に対応するパーサを呼ぶ
• ヒントタイプごとにグルーピングして管理
• ヒント句の重複判定などに用いる
NestLoop(t1 t2) NestLoop(t1 t2 t3)
IndexScan(t1 t1_pkey) SeqScan(t2) SeqScan(t3) SeqScan(t1)
NestLoop(t1 t2)
HintState
NestLoop
(t1 t2 t3)
IndexScan(t1)
hint_str
nall_hints 6
all_hints
SeqScan(t1)
ScanMethodHint ScanMethodHint JoinMethodHint JoinMethodHint
…
スキャンのヒント句 結合方法のヒント句
© 2022 NTT DATA Corporation 26
t1 t2 t3
IndexScan
SeqScan
GUC
enable_seqscan on
enable_indexscan off
...
t1 t2 t3
SeqScan
t1 t2 t3
スキャン方法の指定
• set_rel_pathlist_hook で実施
• 適用すべきヒント句がある場合、GUC パラメータやテーブルのインデックス一覧をヒント句の内容に応じて書き換えて
プランナにアクセスパスを生成させる
set_rel_pathlist_hook
アクセスパスを列挙
プランナが生成した
アクセスパスのリストを消去
例)SeqScan(t1) が指定された場合
ヒント句に対応する処理
• ScanMethodHint をもとに GUC パラメータを変更
• プランナから不必要なインデックスが
見えないように、インデックスの情報を削除
(t1 の RelOptInfo から IndexOptInfo を削除)
再度、プランナにアクセスパスの
リストを生成させる
© 2022 NTT DATA Corporation 27
結合方法の指定
• join_search_hook で実施
• 指定されたテーブル同士の結合方法を考えるタイミングで GUC パラメータを変更
…
t1
NestLoop
NestLoop
t2
t3
GUC
enable_nestloop on
enable_mergejoin off
enable_hashjoin off
…
Hash
t2 t3
Merge
t2 t3
NestLoop
t2 t3
…
NestLoop
t1 t2
GUC
enable_nestloop on
enable_mergejoin off
enable_hashjoin off
…
結合方法・結合順を探索
例)NestLoop(t1 t2) NestLoop(t1 t2 t3) が指定された場合
t1 と t2 の結合方法を探索する間
だけ、GUC パラメータを変更
t1 と t2 と t3 の結合方法を探索する間
だけ、GUC パラメータを変更
ヒント句が指定されていないテーブル
同士は通常通り
© 2022 NTT DATA Corporation 28
結合順の指定
• 指定した結合順を強制するような JoinMethodHint に変換
• 加えて、望ましくないテーブル間での結合方法を探索する間は、
NestLoop 以外のすべての結合方法を禁止するように GUC パラメータを変更
例)Leading(t1 t2 t3) が指定された場合
Leading(t1 t2 t3)
NestLoop(t1 t2)
MergeJoin(t1 t2)
HashJoin(t1 t2)
NestLoop(t1 t2 t3)
MergeJoin(t1 t2 t3)
HashJoin(t1 t2 t3)
右のようなヒント句の作成に加えて、
この順に反する結合の探索では (t1 と t3 や t2 と t3)、
enable_nestloop/enable_mergejoin/enable_hashjoin がす
べて off に設定される
© 2022 NTT DATA Corporation 29
まとめ
この資料では
• pg_hint_plan について、使い方と仕組みの観点から簡単に紹介した
所感
• 複雑に見えるプランナの動作を、シンプルな仕組みで制御していて面白いと感じた
• pg_hint_plan のソースコードを読むことで、PostgreSQL のプランナについての理解も深まっていくと感じた
© 2022 NTT DATA Corporation
その他、記載されている会社名、商品名、又はサービス名は、
各社の登録商標又は商標です。

More Related Content

What's hot

レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)
レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)
レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQLの運用・監視にまつわるエトセトラ
PostgreSQLの運用・監視にまつわるエトセトラPostgreSQLの運用・監視にまつわるエトセトラ
PostgreSQLの運用・監視にまつわるエトセトラ
NTT DATA OSS Professional Services
 
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...
NTT DATA Technology & Innovation
 
PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説
Masahiko Sawada
 
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
 
使ってみませんか?pg_hint_plan
使ってみませんか?pg_hint_plan使ってみませんか?pg_hint_plan
使ってみませんか?pg_hint_plan
NTT DATA OSS Professional Services
 
PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)
PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)
PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)
NTT DATA Technology & Innovation
 
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
NTT DATA Technology & Innovation
 
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
Hironobu Suzuki
 
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQLの関数属性を知ろう
PostgreSQLの関数属性を知ろうPostgreSQLの関数属性を知ろう
PostgreSQLの関数属性を知ろう
kasaharatt
 
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
Miki Shimogai
 
PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報
Masahiko Sawada
 
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
NTT DATA Technology & Innovation
 
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
NTT DATA Technology & Innovation
 
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界
Yoshinori Nakanishi
 

What's hot (20)

レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)
レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)
レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
 
PostgreSQLの運用・監視にまつわるエトセトラ
PostgreSQLの運用・監視にまつわるエトセトラPostgreSQLの運用・監視にまつわるエトセトラ
PostgreSQLの運用・監視にまつわるエトセトラ
 
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...
 
PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説
 
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
 
使ってみませんか?pg_hint_plan
使ってみませんか?pg_hint_plan使ってみませんか?pg_hint_plan
使ってみませんか?pg_hint_plan
 
PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)
PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)
PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)
 
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
 
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
 
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
 
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
PostgreSQLの関数属性を知ろう
PostgreSQLの関数属性を知ろうPostgreSQLの関数属性を知ろう
PostgreSQLの関数属性を知ろう
 
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
 
PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報
 
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
 
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
 
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界
 

Similar to pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)

pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
pg_bigmを用いた全文検索のしくみ(前編)
pg_bigmを用いた全文検索のしくみ(前編)pg_bigmを用いた全文検索のしくみ(前編)
pg_bigmを用いた全文検索のしくみ(前編)
NTT DATA OSS Professional Services
 
PostgreSQLのgitレポジトリから見える2022年の開発状況(第38回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2022年の開発状況(第38回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLのgitレポジトリから見える2022年の開発状況(第38回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2022年の開発状況(第38回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
PL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
PL/CUDA - Fusion of HPC Grade Power with In-Database AnalyticsPL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
PL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
Kohei KaiGai
 
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
NTT DATA Technology & Innovation
 
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
NTT DATA Technology & Innovation
 
使ってみませんか?pg hint_plan
使ってみませんか?pg hint_plan使ってみませんか?pg hint_plan
使ってみませんか?pg hint_plan
Masao Fujii
 
Postgres Playground で pgbench を走らせよう!(第35回PostgreSQLアンカンファレンス@オンライン 発表資料)
Postgres Playground で pgbench を走らせよう!(第35回PostgreSQLアンカンファレンス@オンライン 発表資料)Postgres Playground で pgbench を走らせよう!(第35回PostgreSQLアンカンファレンス@オンライン 発表資料)
Postgres Playground で pgbench を走らせよう!(第35回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQLのgitレポジトリから見える2020年の開発状況(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2020年の開発状況(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLのgitレポジトリから見える2020年の開発状況(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2020年の開発状況(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
オープンデータを使って地図を作ろう|QGIS 活用講座(初級編)
オープンデータを使って地図を作ろう|QGIS 活用講座(初級編)オープンデータを使って地図を作ろう|QGIS 活用講座(初級編)
オープンデータを使って地図を作ろう|QGIS 活用講座(初級編)
Yu Imai
 
2015年度GPGPU実践プログラミング 第4回 GPUでの並列プログラミング(ベクトル和,移動平均,差分法)
2015年度GPGPU実践プログラミング 第4回 GPUでの並列プログラミング(ベクトル和,移動平均,差分法)2015年度GPGPU実践プログラミング 第4回 GPUでの並列プログラミング(ベクトル和,移動平均,差分法)
2015年度GPGPU実践プログラミング 第4回 GPUでの並列プログラミング(ベクトル和,移動平均,差分法)
智啓 出川
 
pg_trgmと全文検索
pg_trgmと全文検索pg_trgmと全文検索
pg_trgmと全文検索
NTT DATA OSS Professional Services
 
PostgreSQLのgitレポジトリから見える2021年の開発状況(第30回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2021年の開発状況(第30回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLのgitレポジトリから見える2021年の開発状況(第30回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2021年の開発状況(第30回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQL13 新機能紹介
PostgreSQL13 新機能紹介PostgreSQL13 新機能紹介
PostgreSQL13 新機能紹介
Satoshi Hirata
 
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
NTT DATA Technology & Innovation
 
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
NTT DATA Technology & Innovation
 
PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
【ハンズオンセミナー】NoSQL/SQLデュアルインタフェースを備えたIoT向けデータベースGridDB ~ GridDB CE 4.6のテーブルパーティ...
【ハンズオンセミナー】NoSQL/SQLデュアルインタフェースを備えたIoT向けデータベースGridDB ~ GridDB CE 4.6のテーブルパーティ...【ハンズオンセミナー】NoSQL/SQLデュアルインタフェースを備えたIoT向けデータベースGridDB ~ GridDB CE 4.6のテーブルパーティ...
【ハンズオンセミナー】NoSQL/SQLデュアルインタフェースを備えたIoT向けデータベースGridDB ~ GridDB CE 4.6のテーブルパーティ...
griddb
 
世の中のPostgreSQLエンジニアのpsql設定(第34回PostgreSQLアンカンファレンス@オンライン 発表資料)
世の中のPostgreSQLエンジニアのpsql設定(第34回PostgreSQLアンカンファレンス@オンライン 発表資料)世の中のPostgreSQLエンジニアのpsql設定(第34回PostgreSQLアンカンファレンス@オンライン 発表資料)
世の中のPostgreSQLエンジニアのpsql設定(第34回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 

Similar to pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料) (20)

pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
pg_bigmを用いた全文検索のしくみ(前編)
pg_bigmを用いた全文検索のしくみ(前編)pg_bigmを用いた全文検索のしくみ(前編)
pg_bigmを用いた全文検索のしくみ(前編)
 
PostgreSQLのgitレポジトリから見える2022年の開発状況(第38回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2022年の開発状況(第38回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLのgitレポジトリから見える2022年の開発状況(第38回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2022年の開発状況(第38回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
PL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
PL/CUDA - Fusion of HPC Grade Power with In-Database AnalyticsPL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
PL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
 
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
 
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
 
使ってみませんか?pg hint_plan
使ってみませんか?pg hint_plan使ってみませんか?pg hint_plan
使ってみませんか?pg hint_plan
 
Postgres Playground で pgbench を走らせよう!(第35回PostgreSQLアンカンファレンス@オンライン 発表資料)
Postgres Playground で pgbench を走らせよう!(第35回PostgreSQLアンカンファレンス@オンライン 発表資料)Postgres Playground で pgbench を走らせよう!(第35回PostgreSQLアンカンファレンス@オンライン 発表資料)
Postgres Playground で pgbench を走らせよう!(第35回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
PostgreSQLのgitレポジトリから見える2020年の開発状況(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2020年の開発状況(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLのgitレポジトリから見える2020年の開発状況(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2020年の開発状況(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
オープンデータを使って地図を作ろう|QGIS 活用講座(初級編)
オープンデータを使って地図を作ろう|QGIS 活用講座(初級編)オープンデータを使って地図を作ろう|QGIS 活用講座(初級編)
オープンデータを使って地図を作ろう|QGIS 活用講座(初級編)
 
2015年度GPGPU実践プログラミング 第4回 GPUでの並列プログラミング(ベクトル和,移動平均,差分法)
2015年度GPGPU実践プログラミング 第4回 GPUでの並列プログラミング(ベクトル和,移動平均,差分法)2015年度GPGPU実践プログラミング 第4回 GPUでの並列プログラミング(ベクトル和,移動平均,差分法)
2015年度GPGPU実践プログラミング 第4回 GPUでの並列プログラミング(ベクトル和,移動平均,差分法)
 
pg_trgmと全文検索
pg_trgmと全文検索pg_trgmと全文検索
pg_trgmと全文検索
 
PostgreSQLのgitレポジトリから見える2021年の開発状況(第30回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2021年の開発状況(第30回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLのgitレポジトリから見える2021年の開発状況(第30回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2021年の開発状況(第30回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
PostgreSQL13 新機能紹介
PostgreSQL13 新機能紹介PostgreSQL13 新機能紹介
PostgreSQL13 新機能紹介
 
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
 
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
 
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
 
PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
【ハンズオンセミナー】NoSQL/SQLデュアルインタフェースを備えたIoT向けデータベースGridDB ~ GridDB CE 4.6のテーブルパーティ...
【ハンズオンセミナー】NoSQL/SQLデュアルインタフェースを備えたIoT向けデータベースGridDB ~ GridDB CE 4.6のテーブルパーティ...【ハンズオンセミナー】NoSQL/SQLデュアルインタフェースを備えたIoT向けデータベースGridDB ~ GridDB CE 4.6のテーブルパーティ...
【ハンズオンセミナー】NoSQL/SQLデュアルインタフェースを備えたIoT向けデータベースGridDB ~ GridDB CE 4.6のテーブルパーティ...
 
世の中のPostgreSQLエンジニアのpsql設定(第34回PostgreSQLアンカンファレンス@オンライン 発表資料)
世の中のPostgreSQLエンジニアのpsql設定(第34回PostgreSQLアンカンファレンス@オンライン 発表資料)世の中のPostgreSQLエンジニアのpsql設定(第34回PostgreSQLアンカンファレンス@オンライン 発表資料)
世の中のPostgreSQLエンジニアのpsql設定(第34回PostgreSQLアンカンファレンス@オンライン 発表資料)
 

More from NTT DATA Technology & Innovation

pg_stat_activityの不可解な観測結果の謎 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_stat_activityの不可解な観測結果の謎 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)pg_stat_activityの不可解な観測結果の謎 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_stat_activityの不可解な観測結果の謎 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
PostGISの落とし穴 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PostGISの落とし穴 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)PostGISの落とし穴 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PostGISの落とし穴 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
TiDBの可用性構成パターン (TiUG Meetup #2 発表資料)
TiDBの可用性構成パターン (TiUG Meetup #2 発表資料)TiDBの可用性構成パターン (TiUG Meetup #2 発表資料)
TiDBの可用性構成パターン (TiUG Meetup #2 発表資料)
NTT DATA Technology & Innovation
 
転生したらQAエンジニアが不在のスクラムチームでスクラムマスターをすることになった件 ~チームでアジャイル品質・アジャイルテスティングに向き合う肝はコミュ...
転生したらQAエンジニアが不在のスクラムチームでスクラムマスターをすることになった件 ~チームでアジャイル品質・アジャイルテスティングに向き合う肝はコミュ...転生したらQAエンジニアが不在のスクラムチームでスクラムマスターをすることになった件 ~チームでアジャイル品質・アジャイルテスティングに向き合う肝はコミュ...
転生したらQAエンジニアが不在のスクラムチームでスクラムマスターをすることになった件 ~チームでアジャイル品質・アジャイルテスティングに向き合う肝はコミュ...
NTT DATA Technology & Innovation
 
せっかくのOSSなんだし、ソースコード読むよね? 〜Apache Kafkaを例にしたOSSソースコードリーディングの基本〜 (Open Source C...
せっかくのOSSなんだし、ソースコード読むよね? 〜Apache Kafkaを例にしたOSSソースコードリーディングの基本〜 (Open Source C...せっかくのOSSなんだし、ソースコード読むよね? 〜Apache Kafkaを例にしたOSSソースコードリーディングの基本〜 (Open Source C...
せっかくのOSSなんだし、ソースコード読むよね? 〜Apache Kafkaを例にしたOSSソースコードリーディングの基本〜 (Open Source C...
NTT DATA Technology & Innovation
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
NTT DATA Technology & Innovation
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
 
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
NTT DATA Technology & Innovation
 
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
NTT DATA Technology & Innovation
 
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
NTT DATA Technology & Innovation
 
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
NTT DATA Technology & Innovation
 
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
NTT DATA Technology & Innovation
 
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
NTT DATA Technology & Innovation
 
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
NTT DATA Technology & Innovation
 
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
NTT DATA Technology & Innovation
 
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
NTT DATA Technology & Innovation
 
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
NTT DATA Technology & Innovation
 
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
NTT DATA Technology & Innovation
 

More from NTT DATA Technology & Innovation (20)

pg_stat_activityの不可解な観測結果の謎 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_stat_activityの不可解な観測結果の謎 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)pg_stat_activityの不可解な観測結果の謎 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_stat_activityの不可解な観測結果の謎 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)
 
PostGISの落とし穴 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PostGISの落とし穴 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)PostGISの落とし穴 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PostGISの落とし穴 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)
 
TiDBの可用性構成パターン (TiUG Meetup #2 発表資料)
TiDBの可用性構成パターン (TiUG Meetup #2 発表資料)TiDBの可用性構成パターン (TiUG Meetup #2 発表資料)
TiDBの可用性構成パターン (TiUG Meetup #2 発表資料)
 
転生したらQAエンジニアが不在のスクラムチームでスクラムマスターをすることになった件 ~チームでアジャイル品質・アジャイルテスティングに向き合う肝はコミュ...
転生したらQAエンジニアが不在のスクラムチームでスクラムマスターをすることになった件 ~チームでアジャイル品質・アジャイルテスティングに向き合う肝はコミュ...転生したらQAエンジニアが不在のスクラムチームでスクラムマスターをすることになった件 ~チームでアジャイル品質・アジャイルテスティングに向き合う肝はコミュ...
転生したらQAエンジニアが不在のスクラムチームでスクラムマスターをすることになった件 ~チームでアジャイル品質・アジャイルテスティングに向き合う肝はコミュ...
 
せっかくのOSSなんだし、ソースコード読むよね? 〜Apache Kafkaを例にしたOSSソースコードリーディングの基本〜 (Open Source C...
せっかくのOSSなんだし、ソースコード読むよね? 〜Apache Kafkaを例にしたOSSソースコードリーディングの基本〜 (Open Source C...せっかくのOSSなんだし、ソースコード読むよね? 〜Apache Kafkaを例にしたOSSソースコードリーディングの基本〜 (Open Source C...
せっかくのOSSなんだし、ソースコード読むよね? 〜Apache Kafkaを例にしたOSSソースコードリーディングの基本〜 (Open Source C...
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
 
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
 
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
 
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
 
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
 
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
 
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
 
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
 
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
 
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
 
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
 
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
 

Recently uploaded

【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models
【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models
【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models
Sony - Neural Network Libraries
 
Imitation learning for robotics 勉強会資料(20240701)
Imitation learning for robotics 勉強会資料(20240701)Imitation learning for robotics 勉強会資料(20240701)
Imitation learning for robotics 勉強会資料(20240701)
Natsutani Minoru
 
LoRaWAN AI Image Sensorエンドデバイス AIG01カタログ
LoRaWAN AI Image Sensorエンドデバイス AIG01カタログLoRaWAN AI Image Sensorエンドデバイス AIG01カタログ
LoRaWAN AI Image Sensorエンドデバイス AIG01カタログ
CRI Japan, Inc.
 
20240717_IoTLT_vol113_kitazaki_v1___.pdf
20240717_IoTLT_vol113_kitazaki_v1___.pdf20240717_IoTLT_vol113_kitazaki_v1___.pdf
20240717_IoTLT_vol113_kitazaki_v1___.pdf
Ayachika Kitazaki
 
最速の組織を目指して全社で大規模スクラムを導入してみた話 #dxd2024 #medicalforce
最速の組織を目指して全社で大規模スクラムを導入してみた話 #dxd2024 #medicalforce最速の組織を目指して全社で大規模スクラムを導入してみた話 #dxd2024 #medicalforce
最速の組織を目指して全社で大規模スクラムを導入してみた話 #dxd2024 #medicalforce
chisatotakane
 
"ros2rapper", Hardware implimentation of ROS2 communication Protocol without ...
"ros2rapper", Hardware implimentation of ROS2 communication Protocol without ..."ros2rapper", Hardware implimentation of ROS2 communication Protocol without ...
"ros2rapper", Hardware implimentation of ROS2 communication Protocol without ...
たけおか しょうぞう
 
論文紹介:Task-aligned Part-aware Panoptic Segmentation through Joint Object-Part ...
論文紹介:Task-aligned Part-aware Panoptic Segmentation through Joint Object-Part ...論文紹介:Task-aligned Part-aware Panoptic Segmentation through Joint Object-Part ...
論文紹介:Task-aligned Part-aware Panoptic Segmentation through Joint Object-Part ...
Toru Tamaki
 
Matsuo-Iwasawa Lab. | Research unit Introduction
Matsuo-Iwasawa Lab. | Research unit IntroductionMatsuo-Iwasawa Lab. | Research unit Introduction
Matsuo-Iwasawa Lab. | Research unit Introduction
Matsuo Lab
 
Matsuo-Iwasawa lab. Research Unit Introduction
Matsuo-Iwasawa lab. Research Unit IntroductionMatsuo-Iwasawa lab. Research Unit Introduction
Matsuo-Iwasawa lab. Research Unit Introduction
Matsuo Lab
 
Matsuo-Iwasawa Lab. Research unit Introduction
Matsuo-Iwasawa Lab. Research unit IntroductionMatsuo-Iwasawa Lab. Research unit Introduction
Matsuo-Iwasawa Lab. Research unit Introduction
Matsuo Lab
 
論文紹介:BAM-DETR: Boundary-Aligned Moment Detection Transformer for Temporal Sen...
論文紹介:BAM-DETR: Boundary-Aligned Moment Detection Transformer for Temporal Sen...論文紹介:BAM-DETR: Boundary-Aligned Moment Detection Transformer for Temporal Sen...
論文紹介:BAM-DETR: Boundary-Aligned Moment Detection Transformer for Temporal Sen...
Toru Tamaki
 
【AI論文解説】クラスタリングベースアプローチによる大規模データセット自動キュレーション
【AI論文解説】クラスタリングベースアプローチによる大規模データセット自動キュレーション【AI論文解説】クラスタリングベースアプローチによる大規模データセット自動キュレーション
【AI論文解説】クラスタリングベースアプローチによる大規模データセット自動キュレーション
Sony - Neural Network Libraries
 
【JSAI2024】J-NER大規模言語モデルのための固有表現認識における拡張固有表現階層を考慮したベンチマークデータセット.pdf
【JSAI2024】J-NER大規模言語モデルのための固有表現認識における拡張固有表現階層を考慮したベンチマークデータセット.pdf【JSAI2024】J-NER大規模言語モデルのための固有表現認識における拡張固有表現階層を考慮したベンチマークデータセット.pdf
【JSAI2024】J-NER大規模言語モデルのための固有表現認識における拡張固有表現階層を考慮したベンチマークデータセット.pdf
ARISE analytics
 
Kyndryl Developer Services のご紹介 2024年7月
Kyndryl Developer Services のご紹介  2024年7月Kyndryl Developer Services のご紹介  2024年7月
Kyndryl Developer Services のご紹介 2024年7月
Takayuki Nakayama
 

Recently uploaded (14)

【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models
【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models
【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models
 
Imitation learning for robotics 勉強会資料(20240701)
Imitation learning for robotics 勉強会資料(20240701)Imitation learning for robotics 勉強会資料(20240701)
Imitation learning for robotics 勉強会資料(20240701)
 
LoRaWAN AI Image Sensorエンドデバイス AIG01カタログ
LoRaWAN AI Image Sensorエンドデバイス AIG01カタログLoRaWAN AI Image Sensorエンドデバイス AIG01カタログ
LoRaWAN AI Image Sensorエンドデバイス AIG01カタログ
 
20240717_IoTLT_vol113_kitazaki_v1___.pdf
20240717_IoTLT_vol113_kitazaki_v1___.pdf20240717_IoTLT_vol113_kitazaki_v1___.pdf
20240717_IoTLT_vol113_kitazaki_v1___.pdf
 
最速の組織を目指して全社で大規模スクラムを導入してみた話 #dxd2024 #medicalforce
最速の組織を目指して全社で大規模スクラムを導入してみた話 #dxd2024 #medicalforce最速の組織を目指して全社で大規模スクラムを導入してみた話 #dxd2024 #medicalforce
最速の組織を目指して全社で大規模スクラムを導入してみた話 #dxd2024 #medicalforce
 
"ros2rapper", Hardware implimentation of ROS2 communication Protocol without ...
"ros2rapper", Hardware implimentation of ROS2 communication Protocol without ..."ros2rapper", Hardware implimentation of ROS2 communication Protocol without ...
"ros2rapper", Hardware implimentation of ROS2 communication Protocol without ...
 
論文紹介:Task-aligned Part-aware Panoptic Segmentation through Joint Object-Part ...
論文紹介:Task-aligned Part-aware Panoptic Segmentation through Joint Object-Part ...論文紹介:Task-aligned Part-aware Panoptic Segmentation through Joint Object-Part ...
論文紹介:Task-aligned Part-aware Panoptic Segmentation through Joint Object-Part ...
 
Matsuo-Iwasawa Lab. | Research unit Introduction
Matsuo-Iwasawa Lab. | Research unit IntroductionMatsuo-Iwasawa Lab. | Research unit Introduction
Matsuo-Iwasawa Lab. | Research unit Introduction
 
Matsuo-Iwasawa lab. Research Unit Introduction
Matsuo-Iwasawa lab. Research Unit IntroductionMatsuo-Iwasawa lab. Research Unit Introduction
Matsuo-Iwasawa lab. Research Unit Introduction
 
Matsuo-Iwasawa Lab. Research unit Introduction
Matsuo-Iwasawa Lab. Research unit IntroductionMatsuo-Iwasawa Lab. Research unit Introduction
Matsuo-Iwasawa Lab. Research unit Introduction
 
論文紹介:BAM-DETR: Boundary-Aligned Moment Detection Transformer for Temporal Sen...
論文紹介:BAM-DETR: Boundary-Aligned Moment Detection Transformer for Temporal Sen...論文紹介:BAM-DETR: Boundary-Aligned Moment Detection Transformer for Temporal Sen...
論文紹介:BAM-DETR: Boundary-Aligned Moment Detection Transformer for Temporal Sen...
 
【AI論文解説】クラスタリングベースアプローチによる大規模データセット自動キュレーション
【AI論文解説】クラスタリングベースアプローチによる大規模データセット自動キュレーション【AI論文解説】クラスタリングベースアプローチによる大規模データセット自動キュレーション
【AI論文解説】クラスタリングベースアプローチによる大規模データセット自動キュレーション
 
【JSAI2024】J-NER大規模言語モデルのための固有表現認識における拡張固有表現階層を考慮したベンチマークデータセット.pdf
【JSAI2024】J-NER大規模言語モデルのための固有表現認識における拡張固有表現階層を考慮したベンチマークデータセット.pdf【JSAI2024】J-NER大規模言語モデルのための固有表現認識における拡張固有表現階層を考慮したベンチマークデータセット.pdf
【JSAI2024】J-NER大規模言語モデルのための固有表現認識における拡張固有表現階層を考慮したベンチマークデータセット.pdf
 
Kyndryl Developer Services のご紹介 2024年7月
Kyndryl Developer Services のご紹介  2024年7月Kyndryl Developer Services のご紹介  2024年7月
Kyndryl Developer Services のご紹介 2024年7月
 

pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)

  • 1. © 2022 NTT DATA Corporation pg_hint_plan を知る 2022/12/20 第37回 PostgreSQLアンカンファレンス@オンライン 株式会社NTTデータ 技術開発本部 葛木優太
  • 2. © 2022 NTT DATA Corporation 2 自己紹介 • 葛木優太 (@katsuragi_yuta) • NTTデータ 技術開発本部 所属 • 新卒1年目
  • 3. © 2022 NTT DATA Corporation 3 目次 • pg_hint_plan の概要 • pg_hint_plan とは • pg_hint_plan の使い方 • pg_hint_plan の仕組み
  • 4. © 2022 NTT DATA Corporation 4 01 pg_hint_plan の概要
  • 5. © 2022 NTT DATA Corporation 5 pg_hint_plan とは • pg_hint_plan とは • NTT OSS センタが中心となって開発している PostgreSQL のエクステンション • クエリにヒントを指定することで、SQL や GUC パラメータを変更せず実行計画を制御 • 現時点 (2022/12/20) での最新版は 1.5 で PostgreSQL 15 をサポート • 例えば次のようなことが可能 • 特定のテーブルのスキャン方法を指定 • 特定のテーブル同士の結合方法を指定 • 特定のテーブル同士の結合順序を指定 • ヒントを記述した SQL 文を処理する間だけ GUC パラメータを変更 # /*+ MergeJoin(t1 t2) */ # SELECT * FROM t1, t2 WHERE t1.x = t2.x; t1 と t2 の結合方法を指定するヒント句 本資料では pg_hint_plan 1.4 と PostgreSQL 14 を扱う
  • 6. © 2022 NTT DATA Corporation 6 pg_hint_plan とは | ヒントとヒント句 • pg_hint_plan では SQL に対してヒントを指定して実行計画を制御 • ヒントはヒント句から構成される • pg_hint_plan では 2 つの場所にヒントを記述可能 • SQL のコメント • hint table MergeJoin(t1 t2) IndexScan(t1 t1_pkey) IndexScan(t2 t2_pkey) t1 と t2 の結合方法を指定するヒント句 t1 のスキャン方法を指定するヒント句 t2 のスキャン方法を指定するヒント句 これら 3 つのヒント句をまとめてヒントと呼ぶ
  • 7. © 2022 NTT DATA Corporation 7 pg_hint_plan とは | SQL のコメントとしてのヒント • SQL の先頭にコメントの形式でヒントを記述する方法 • コメントは /*+ で開始し、*/ で終わる必要がある QUERY PLAN ---------------------------------------------------------------------------- Merge Join (cost=0.42..19.72 rows=100 width=16) Merge Cond: (t1.id = t2.id) -> Index Scan using t1_pkey on t1 (cost=0.14..13.64 rows=100 width=8) -> Index Scan using t2_pkey on t2 (cost=0.28..43.27 rows=1000 width=8) =# /*+ MergeJoin(t1 t2) IndexScan(t1 t1_pkey) IndexScan(t2 t2_pkey) */ -# EXPLAIN SELECT * FROM t1,t2 WHERE t1.id = t2.id;
  • 8. © 2022 NTT DATA Corporation 8 pg_hint_plan とは | hint table • SQL に対するヒント句を hint table (hint_plan.hints) に登録 • ヒントと、ヒントの適用対象となるクエリを保持するテーブル • デフォルトではスーパーユーザのみ編集可能 • norm_query_string では空白、セミコロンの有無も区別される • hint table に記述したヒントは、コメントより優先されるが、その場合、コメント付きの SQL を登録する必要がある =# INSERT INTO hint_table.hints(norm_query_string, application_name, hints) VALUES -# (‘EXPLAIN SELECT * FROM t1 WHERE t1.id = ?;’, -# ‘’, -# 'SeqScan(t1)’ -# );
  • 9. © 2022 NTT DATA Corporation 9 pg_hint_plan の使い方 | インストールと設定 • ビルド • make; make install • postgresql.conf • hint table を使用する場合の追加の設定 shared_preload_libraries = ‘pg_hint_plan’ pg_hint_plan.enable_hint = on =# CREATE EXTENSION pg_hint_plan; =# SET pg_hint_plan.enable_hint_table TO on; (*) その他の pg_hint_plan 固有の GUC パラメータはドキュメントを参照 https://github.com/ossc-db/pg_hint_plan/blob/master/doc/pg_hint_plan-ja.html デフォルトで on に設定される
  • 10. © 2022 NTT DATA Corporation 10 pg_hint_plan の使い方 • 簡単にヒント句の使い方を紹介 • ヒント句の一覧についてはドキュメントを参照 (*) (*) https://github.com/ossc-db/pg_hint_plan/blob/master/doc/hint_list-ja.html
  • 11. © 2022 NTT DATA Corporation 11 pg_hint_plan の使い方 | スキャン方法の指定 • SeqScan を指定する場合 • IndexScan を指定する場合 =# /*+ SeqScan(t1) */ -# EXPLAIN SELECT * FROM t1 WHERE t1.id = 10; QUERY PLAN -------------------------------------------------- Seq Scan on t1 (cost=0.00..2.25 rows=1 width=8) Filter: (id = 10) =# /*+ IndexScan(t1 t1_pkey) */ -# EXPLAIN SELECT * FROM t1 WHERE t1.id = 10; QUERY PLAN ------------------------------------------------------------------ Index Scan using t1_pkey on t1 (cost=0.14..8.16 rows=1 width=8) Index Cond: (id = 10) 使用したいインデックス名のリストを空白区切りで記述
  • 12. © 2022 NTT DATA Corporation 12 pg_hint_plan の使い方 | 結合方法の指定 結合方法と、対象とするテーブルを記述 • NestLoop(t1 t2) は t1 と t2 の結合を NestLoop で実行することを指定 • NestLoop(t1 t2) と NestLoop(t2 t1) は等価 • 3 テーブル以上の結合が必要な場合、NestLoop(t1 t2) は t1 と t2 の結合を強制するわけではない =# /*+ NestLoop(t1 t2) */ -# EXPLAIN SELECT * FROM t1,t2 WHERE t1.id = t2.id; QUERY PLAN ------------------------------------------------------------------------ Nested Loop (cost=0.28..71.25 rows=100 width=16) -> Seq Scan on t1 (cost=0.00..2.00 rows=100 width=8) -> Index Scan using t2_pkey on t2 (cost=0.28..0.69 rows=1 width=8) Index Cond: (id = t1.id)
  • 13. © 2022 NTT DATA Corporation 13 pg_hint_plan の使い方 | 結合方法の指定 結合方法と、対象とするテーブルを記述 • NestLoop(t1 t2 t3) は t1、t2、t3 の結合に対して有効 • (t1 t2)、(t1 t3)、(t2 t3) の結合には有効ではない =# /*+ NestLoop(t1 t2 t3) */ -# EXPLAIN SELECT * FROM t1,t2,t3 WHERE t1.id = t2.id and t2.id = t3.id; QUERY PLAN ------------------------------------------------------------------------------------ Nested Loop (cost=5.88..41.44 rows=100 width=24) Join Filter: (t1.id = t2.id) -> Merge Join (cost=5.61..10.54 rows=100 width=16) Merge Cond: (t3.id = t1.id) -> Index Scan using t3_pkey on t3 (cost=0.29..318.29 rows=10000 width=8) -> Sort (cost=5.32..5.57 rows=100 width=8) Sort Key: t1.id -> Seq Scan on t1 (cost=0.00..2.00 rows=100 width=8) -> Index Scan using t2_pkey on t2 (cost=0.28..0.30 rows=1 width=8) Index Cond: (id = t3.id)
  • 14. © 2022 NTT DATA Corporation 14 pg_hint_plan の使い方 | 結合方法の指定 結合方法と、対象とするテーブルを記述 • NestLoop(t1 t2 t3) は t1、t2、t3 の結合に対して有効 • (t1 t2)、(t1 t3)、(t2 t3) の結合には有効ではない =# /*+ NestLoop(t1 t2 t3) */ -# EXPLAIN SELECT * FROM t1,t2,t3 WHERE t1.id = t2.id and t2.id = t3.id; Merge Join t2 IndexScan t3 t1 IndexScan SeqScan 左のプランツリーに含まれるテーブル: t1、t3 右のプランツリーに含まれるテーブル: t2 t3 t1 IndexScan SeqScan 左のプランツリーに含まれるテーブル: t3 右のプランツリーに含まれるテーブル: t1 NestLoop(t1 t2 t3) の適用対象 ⋈ ⋈ NestLoop(t1 t2 t3) の適用対象ではない 左右のプランツリーに含まれるテーブルが t1、t2、t3 だけであるということ
  • 15. © 2022 NTT DATA Corporation 15 pg_hint_plan の使い方 | 結合順の指定 • Leading 句により結合順を指定 • 指定方法は 2 種類 • 結合順のみ指定 • 外部表と内部表を含めて結合順を指定
  • 16. © 2022 NTT DATA Corporation 16 pg_hint_plan の使い方 | 結合順の指定 結合順のみを指定する場合 • Leading 句に結合したいテーブルを、その順に記述 • Leading(t1 t2 t3) により、t1 と t2 の結合を実施してから t3 との結合を実施する =# /*+ Leading(t1 t2 t3) */ -# EXPLAIN SELECT * FROM t1,t2,t3 WHERE t1.id = t2.id and t2.id = t3.id; QUERY PLAN ---------------------------------------------------------------------------------- Merge Join (cost=5.88..16.61 rows=100 width=24) Merge Cond: (t1.id = t3.id) -> Merge Join (cost=5.60..11.65 rows=100 width=16) Merge Cond: (t2.id = t1.id) -> Index Scan using t2_pkey on t2 (cost=0.28..43.27 rows=1000 width=8) -> Sort (cost=5.32..5.57 rows=100 width=8) Sort Key: t1.id -> Seq Scan on t1 (cost=0.00..2.00 rows=100 width=8) -> Index Scan using t3_pkey on t3 (cost=0.29..318.29 rows=10000 width=8)
  • 17. © 2022 NTT DATA Corporation 17 pg_hint_plan の使い方 | 結合順の指定 外部表と内部表を含めて結合順を指定する場合 • Leading 句で明示的に外部表と内部表を指定 Leading(( t1 (t3 t2) )) Leading(( outer-table-set inner-table-set )) outer-table-set := table-set inner-table-set := table-set table-set := table-name | (outer-table-set inner-table-set) ヒント句の書き方は以下 ただし、 例) t2 t3 t1 ⋈ ⋈
  • 18. © 2022 NTT DATA Corporation 18 pg_hint_plan の使い方 | 結合順の指定 外部表と内部表を含めて結合順を指定する場合 • Leading 句で明示的に外部表と内部表を指定 =# /*+ Leading(( t1 (t2 t3) )) NestLoop(t1 t2 t3) NestLoop(t2 t3) */ -# EXPLAIN SELECT * FROM t1,t2,t3 WHERE t1.id = t2.id and t2.id = t3.id; QUERY PLAN ------------------------------------------------------------------------------------ Nested Loop (cost=0.29..2122.00 rows=100 width=24) Join Filter: (t2.id = t1.id) -> Seq Scan on t1 (cost=0.00..2.00 rows=100 width=8) -> Materialize (cost=0.29..622.50 rows=1000 width=16) -> Nested Loop (cost=0.29..617.50 rows=1000 width=16) -> Seq Scan on t2 (cost=0.00..15.00 rows=1000 width=8) -> Index Scan using t3_pkey on t3 (cost=0.29..0.60 rows=1 width=8) Index Cond: (id = t2.id) (t2 t3) t1 (t2 t3)
  • 19. © 2022 NTT DATA Corporation 19 02 pg_hint_plan の仕組み
  • 20. © 2022 NTT DATA Corporation 20 ここから • 以下の2点に着目し、pg_hint_plan の動作イメージを追う • どこでヒントが解析されるか • ヒントの情報からどのようにプランナを制御するか • スキャン方法の指定 • 結合方法の指定 • 結合順序の指定 • 前提 • SQL は /*+ HINT */ SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.id = t3.id 共通する大まかな方針は、 適切なタイミングで適切に GUC パラメータを変更する
  • 21. © 2022 NTT DATA Corporation 21 PostgreSQL のクエリ処理系と pg_hint_plan の関係 パーサ プランナ エグゼキュータ SQL 実行結果 アクセスパスを列挙 結合方法・順序を探索 pg_hint_plan が有効でない場合
  • 22. © 2022 NTT DATA Corporation 22 PostgreSQL のクエリ処理系と pg_hint_plan の関係 パーサ プランナ エグゼキュータ SQL 実行結果 アクセスパスを列挙 結合方法・順序を探索 pg_hint_plan が有効な場合 ヒントの解析 ヒント句のための処理 (GUC の変更など) pg_hint_plan pg_hint_plan ヒント句のための処理 (GUC の変更など) pg_hint_plan
  • 23. © 2022 NTT DATA Corporation 23 t1 Merge Merge t2 t3 … t2 NestLoop NestLoop t3 t1 プランナの動作イメージ | pg_hint_plan が有効でない場合 … Hash t2 t3 Merge t2 t3 NestLoop t2 t3 … 結合方法・結合順を探索 エグゼキュータへ t1 t2 t3 IndexScan SeqScan アクセスパスを列挙 パーサ Hash t1 t2 Merge t1 t2 NestLoop t1 t2 … …
  • 24. © 2022 NTT DATA Corporation 24 プランナの動作イメージ | pg_hint_plan が有効な場合 /*+ HINT */ SELECT ... FROM t1,t2,t3 WHERE ... … t1 NestLoop NestLoop t2 t3 GUC enable_nestloop on enable_mergejoin off enable_hashjoin off … Hash t2 t3 Merge t2 t3 NestLoop t2 t3 … NestLoop t1 t2 GUC enable_nestloop on enable_mergejoin off enable_hashjoin off … 結合方法・結合順を探索 ヒントの解析 エグゼキュータへ t1 t2 t3 IndexScan SeqScan GUC enable_seqscan on enable_indexscan off ... t1 t2 t3 SeqScan t1 t2 t3 アクセスパスを列挙 パーサ …
  • 25. © 2022 NTT DATA Corporation 25 ヒントの解析 • planner_hook で実施 • ヒント句に対応する構造体を作成 • コメントを先頭から読んでいき、キーワード (e.g. SeqScan) に対応するパーサを呼ぶ • ヒントタイプごとにグルーピングして管理 • ヒント句の重複判定などに用いる NestLoop(t1 t2) NestLoop(t1 t2 t3) IndexScan(t1 t1_pkey) SeqScan(t2) SeqScan(t3) SeqScan(t1) NestLoop(t1 t2) HintState NestLoop (t1 t2 t3) IndexScan(t1) hint_str nall_hints 6 all_hints SeqScan(t1) ScanMethodHint ScanMethodHint JoinMethodHint JoinMethodHint … スキャンのヒント句 結合方法のヒント句
  • 26. © 2022 NTT DATA Corporation 26 t1 t2 t3 IndexScan SeqScan GUC enable_seqscan on enable_indexscan off ... t1 t2 t3 SeqScan t1 t2 t3 スキャン方法の指定 • set_rel_pathlist_hook で実施 • 適用すべきヒント句がある場合、GUC パラメータやテーブルのインデックス一覧をヒント句の内容に応じて書き換えて プランナにアクセスパスを生成させる set_rel_pathlist_hook アクセスパスを列挙 プランナが生成した アクセスパスのリストを消去 例)SeqScan(t1) が指定された場合 ヒント句に対応する処理 • ScanMethodHint をもとに GUC パラメータを変更 • プランナから不必要なインデックスが 見えないように、インデックスの情報を削除 (t1 の RelOptInfo から IndexOptInfo を削除) 再度、プランナにアクセスパスの リストを生成させる
  • 27. © 2022 NTT DATA Corporation 27 結合方法の指定 • join_search_hook で実施 • 指定されたテーブル同士の結合方法を考えるタイミングで GUC パラメータを変更 … t1 NestLoop NestLoop t2 t3 GUC enable_nestloop on enable_mergejoin off enable_hashjoin off … Hash t2 t3 Merge t2 t3 NestLoop t2 t3 … NestLoop t1 t2 GUC enable_nestloop on enable_mergejoin off enable_hashjoin off … 結合方法・結合順を探索 例)NestLoop(t1 t2) NestLoop(t1 t2 t3) が指定された場合 t1 と t2 の結合方法を探索する間 だけ、GUC パラメータを変更 t1 と t2 と t3 の結合方法を探索する間 だけ、GUC パラメータを変更 ヒント句が指定されていないテーブル 同士は通常通り
  • 28. © 2022 NTT DATA Corporation 28 結合順の指定 • 指定した結合順を強制するような JoinMethodHint に変換 • 加えて、望ましくないテーブル間での結合方法を探索する間は、 NestLoop 以外のすべての結合方法を禁止するように GUC パラメータを変更 例)Leading(t1 t2 t3) が指定された場合 Leading(t1 t2 t3) NestLoop(t1 t2) MergeJoin(t1 t2) HashJoin(t1 t2) NestLoop(t1 t2 t3) MergeJoin(t1 t2 t3) HashJoin(t1 t2 t3) 右のようなヒント句の作成に加えて、 この順に反する結合の探索では (t1 と t3 や t2 と t3)、 enable_nestloop/enable_mergejoin/enable_hashjoin がす べて off に設定される
  • 29. © 2022 NTT DATA Corporation 29 まとめ この資料では • pg_hint_plan について、使い方と仕組みの観点から簡単に紹介した 所感 • 複雑に見えるプランナの動作を、シンプルな仕組みで制御していて面白いと感じた • pg_hint_plan のソースコードを読むことで、PostgreSQL のプランナについての理解も深まっていくと感じた
  • 30. © 2022 NTT DATA Corporation その他、記載されている会社名、商品名、又はサービス名は、 各社の登録商標又は商標です。