SlideShare une entreprise Scribd logo
1  sur  21
© 2023 NTT DATA Corporation
© 2023 NTT DATA Corporation
NewSQL/分散SQLデータベース よろず勉強会 #3
YugabyteDBの実行計画を眺める
2023年2月16日
NTTデータ 笠原辰仁
© 2023 NTT DATA Corporation 2
自己紹介
• 笠原 辰仁 (@kasa_zip)
• 長年PostgreSQLの検証や周辺ツールの開発、サポートなどに従事
• 最近はNewSQLや分散データベースに属するOSSプロダクトの調査や検証、
適用領域の見極めなど
• 本日は、分散データベースのOSSプロダクトであるYugabyteDBの実行計画の取得方法や
情報の見方を解説
© 2023 NTT DATA Corporation 3
実行計画とは
発行されたクエリをどのように実行するかをDBMSが生成する情報。一般的にはDBMSのPlannerやOptimizerと呼ばれる機能
が生成する。
通常、あまりユーザ(クエリを発行する人)が実行計画を意識することは無いが、思ったような性能が出ない場合の原因解析やクエ
リチューニングを行った効果などを調査したい時に、とても有用なもの。
SELECT * FROM t1 JOIN t2 ON t1.c1 = t2.c1 WHERE t1.c1 < 10;
QUERY PLAN
--------------------------------------
Nested Loop
Join Filter: (t1.c1 = t2.c1)
-> Index Scan using t1_pkey on t1
Index Cond: (c1 < 10)
-> Seq Scan on t2
YugabyteDB
(のPlanner)
© 2023 NTT DATA Corporation 4
実行計画の取得方法
YugabyteDBでは他のDBMSと同様にEXPLAINという句をクエリの先頭に付与することで実行計画を取得できる。
クエリは実際には実行されない。出力される情報はPostgreSQLとほぼ同じ。
yugabyte=# EXPLAIN SELECT * FROM r_t1 WHERE c1 < 100;
QUERY PLAN
-----------------------------------------------------------------------
Index Scan using r_t1_pkey on r_t1 (cost=0.00..4.11 rows=1 width=52)
Index Cond: (c1 < 100)
(2 rows)
yugabyte=# EXPLAIN SELECT * FROM r_t1;
QUERY PLAN
----------------------------------------------------------
Seq Scan on r_t1 (cost=0.00..100.00 rows=1000 width=52)
(1 row)
yugabyte=# EXPLAIN SELECT * FROM r_t1 r JOIN h_t1 h ON r.c1 = h.c1 WHERE r.c1 < 100;
QUERY PLAN
-------------------------------------------------------------------------------
Nested Loop (cost=0.00..8.23 rows=1 width=104)
-> Index Scan using r_t1_pkey on r_t1 r (cost=0.00..4.11 rows=1 width=52)
Index Cond: (c1 < 100)
-> Index Scan using h_t1_pkey on h_t1 h (cost=0.00..4.11 rows=1 width=52)
Index Cond: (c1 = r.c1)
(5 rows)
© 2023 NTT DATA Corporation 5
実行計画の取得方法
EXPLAINではオプションをいくつか付与することで様々な情報を出力できる。
オプション 説明
ANALYZE 指定したクエリを実行し、実際の所要時間や消費した各種リソース(IOやメモリなど)の情報を出力する。
VERBOSE SELECT列の射影対象や中間処理での出力対象を出力する。
COSTS 実行計画のコスト情報を出力する。デフォルト有効。
TIMING 実行時の所要時間を出力する。ANALYZEの指定が必須でデフォルト有効。
BUFFERS 実行過程における巨大なハッシュやソート処理の一時ファイル書き出しで使用されたバッファサイズを出力す
る。ANALYZEの指定が必須。
SUMMARY 実行計画の末尾にプラン作成時間、実行時間、総メモリ消費量などを出力する。デフォルト有効。
FORMAT 実行計画情報の出力形式を指定する。TEXT、JSON、YAML、XMLから選択できデフォルトはTEXT。
DIST ストレージ層のDocDBへの読み書きリクエスト数やDocDBでの所要時間を出力する。
ANALYZEオプションを付与することで実際の所要時間が分かるため多用することが多い。ただし実際にクエリが実行されるため更
新系の処理を対象にするときは注意。(BEGIN; ABORT;で囲うなど工夫がいる)
COSTSやTIMING、SUMMARYについては変動要素の強い出力情報になるので、リグレッションテストなどの出力と期待のdiff
を取るときなどのノイズ除去として用いられたり、実行計画を簡潔に出力したい場合などに用いる。
© 2023 NTT DATA Corporation 6
EXPLAINの文法
EXPLAINでは複数のオプションを組み合わせて使用できる。以下のようにEXPLAIN (オプション [,..]) の形で指定する。
EXPLAIN (ANALYZE, BUFFERS, VERBOSE) SELECT …
上記はANALYZE、BUFFERS、VERBOSEを有効にしている。オプション [on | off] の形を取ることもできる。
EXPLAIN (ANALYZE on, BUFFERS on, COSTS off) SELECT …
上記はANALYZE、BUFFERSを有効にし、COSTSを無効にしている。
EXPLAINは通常のSELECTやUPDATEなどのクエリの他、カーソルのDECLARE、準備文(Prepared Statement)に対する
EXECUTEにも使用することができる。
PREPARE p1(int) AS SELECT … WHERE c1 = $1;
EXPLAIN (ANALYZE on, BUFFERS on) EXECUTE p1(10);
EXPLAIN (ANALYZE on, BUFFERS on) DECLARE cur FOR SELECT …
© 2023 NTT DATA Corporation 7
実行計画の見方
=> EXPLAIN SELECT * FROM r_t1 r JOIN h_t1 h ON r.c1 = h.c1 WHERE h.c1 < 10;
QUERY PLAN
-------------------------------------------------------------------------------
Nested Loop (cost=0.00..216.39 rows=1000 width=104)
-> Seq Scan on h_t1 h (cost=0.00..102.50 rows=1000 width=52)
Filter: (c1 < 10)
-> Index Scan using r_t1_pkey on r_t1 r (cost=0.00..0.11 rows=1 width=52)
Index Cond: (c1 = h.c1)
(5 rows)
赤字部分はノードタイプとも呼ばれ、実行されるスキャン、
結合、集計等の各処理の種別を表す。
基本的にネストの深い方(右の方)から順次実行されていく
代表的なノードタイプには以下がある。
• スキャン:Seq Scan/Index Scan/Index Only Scan
• 結合:Nested Loop/Merge Join/Hash Join (Semi/Anti)
• 集計:HashAggregate/GroupAggregate
• 更新:Insert/Update/Delete
• その他:Sort/Limit/Result/Append… など。
ちなみにPostgreSQLにあるBitmapScanは無い
まず計画そのものとなるノード情報。
© 2023 NTT DATA Corporation 8
実行計画の見方
=> EXPLAIN SELECT * FROM r_t1 r JOIN h_t1 h ON r.c1 = h.c1 WHERE h.c1 < 10;
QUERY PLAN
-------------------------------------------------------------------------------
Nested Loop (cost=0.00..216.39 rows=1000 width=104)
-> Seq Scan on h_t1 h (cost=0.00..102.50 rows=1000 width=52)
Filter: (c1 < 10)
-> Index Scan using r_t1_pkey on r_t1 r (cost=0.00..0.11 rows=1 width=52)
Index Cond: (c1 = h.c1)
(5 rows)
赤字部分はコストに関する情報で、N.NN .. M.MMはそれぞれ
スタートアップコスト(そのノードを開始するための準備コスト)と
トータルコスト(ノード処理を一通り完了するまでの総コスト)。
rowsは各ノードで取得する予想行数。
widthは各ノードで取得する列幅の総サイズ。
コストの計算式はPostgreSQLと同様のロジックだが、
YugabyteDB特有の要素がいくつかある。(異なるゾーン
やリージョンへの問い合わせコストは別途追加するなど)
src/backend/access/yb_access/yb_scan.cの
ybcCostEstimate()
Plannerが実行計画の作成の根拠とした見積情報。
© 2023 NTT DATA Corporation 9
実行計画の見方
=> EXPLAIN (ANALYZE on, COSTS off) SELECT r.c1, r.c4 FROM r_t1 r JOIN h_t1 h ON r.c1 = h.c1 WHERE h.c1 < 100;
QUERY PLAN
---------------------------------------------------------------------------------------
Nested Loop (actual time=12.706..1979.256 rows=99 loops=1)
-> Seq Scan on h_t1 h (actual time=7.545..1669.513 rows=99 loops=1)
Filter: (c1 < 100)
Rows Removed by Filter: 599901
-> Index Scan using r_t1_pkey on r_t1 r (actual time=3.108..3.108 rows=1 loops=99)
Index Cond: (c1 = h.c1)
Planning Time: 0.127 ms
Execution Time: 1979.423 ms
Peak Memory Usage: 30 kB
(9 rows)
赤字部分は実際にかかった時間や取得した行数情報。
actual timeのNN.NN .. MM.MMは各ノードで最初の1行を取得す
るまでの時間(ms)と最後の行を取得するまでの時間(ms)。
rowsは各ノードで取得された件数。
loopsは各ノードが繰り返された回数。
Rows Removed by Filterはスキャンした件数のうち条件により除去
された件数。
loopsが2以上の場合、実際にかかる時間は
「actual time」 * 「loops回数」となる。
loopsが多いものはactual timeが短くても注意すると良い。
実際にクエリを実行した場合の所要時間や取得した件数などの情報。
© 2023 NTT DATA Corporation 10
実行計画の見方
=> EXPLAIN (ANALYZE on, COSTS off) SELECT r.c1, r.c4 FROM r_t1 r JOIN h_t1 h ON r.c1 = h.c1 WHERE h.c1 < 100;
QUERY PLAN
---------------------------------------------------------------------------------------
Nested Loop (actual time=12.706..1979.256 rows=99 loops=1)
-> Seq Scan on h_t1 h (actual time=7.545..1669.513 rows=99 loops=1)
Filter: (c1 < 100)
Rows Removed by Filter: 599901
-> Index Scan using r_t1_pkey on r_t1 r (actual time=3.108..3.108 rows=1 loops=99)
Index Cond: (c1 = h.c1)
Planning Time: 0.127 ms
Execution Time: 1979.423 ms
Peak Memory Usage: 30 kB
(9 rows)
赤字部分はサマリ情報。
Planning Timeはプラン作成にかかった時間。
Execution Timeはクエリ処理にかかった総時間。
Peak Memory Usageはクエリ処理中の最もメモリを消費していた際
の利用量(Tserver上のpostgresバックエンドでの消費量)。
Execution TimeはYugabyteDB内での所要時間となり、
クライアントへ結果を返すなどの通信時間などは含まれない
ので注意。
実際にクエリを実行した場合のサマリ情報。
© 2023 NTT DATA Corporation 11
実行計画の見方
=> EXPLAIN (ANALYZE on, DIST on, COSTS off) SELECT r.c1, r.c4 FROM r_t1 r JOIN h_t1 h ON r.c1 = h.c1 WHERE h.c1 < 100;
QUERY PLAN
---------------------------------------------------------------------------------------
Nested Loop (actual time=20.376..1765.325 rows=99 loops=1)
-> Seq Scan on h_t1 h (actual time=6.409..1478.253 rows=99 loops=1)
Filter: (c1 < 100)
Rows Removed by Filter: 599901
Storage Table Read Requests: 588
Storage Table Execution Time: 1424.985 ms
-> Index Scan using r_t1_pkey on r_t1 r (actual time=2.882..2.882 rows=1 loops=99)
Index Cond: (c1 = h.c1)
Storage Index Read Requests: 1
Storage Index Execution Time: 2.859 ms
Planning Time: 0.085 ms
Execution Time: 1765.460 ms
Storage Read Requests: 687
Storage Write Requests: 0
Storage Execution Time: 1707.983 ms
Peak Memory Usage: 30 kB
(16 rows)
赤字部分はストレージ(DocDB)での処理時間や回数の情報。
Storage Table~はSeqScan処理でDocDBへ行われたRPCの回数と所要時間。
Storage Index~はIndex Scan処理でDocDBへ行われたRPCの回数と所要時
間。
Storage Read/Write RequestはDocDBへリクエストされたRPCの総回数。
Storage Execution TimeはDocDBでの処理総時間。
なお、loopsが2以上の場合はStorage~Requestsはその回数だけ実施される。
DISTオプションによる実際にクエリを実行した場合のDocDBでの処理時間やリクエスト回数などの情報。
© 2023 NTT DATA Corporation 12
YugabyteDBのユニークな処理 – HashとRange -
YugabyteDBではインデックスはデフォルトでハッシュインデックスが利用される。そのため範囲検索を多用する場合はインデックス
定義に注意しておく。
=# CREATE TABLE r_t1 (c1 int, c2 int, c3 int, c4 text, c5 timestamp, primary key (c1 ASC)); -- 主キーはRange
=# CREATE TABLE h_t1 (c1 int, c2 int, c3 int, c4 text, c5 timestamp, primary key (c1)); -- 主キーはHash
(各テーブルに60万件ほど投入)
=# EXPLAIN (ANALYZE on, COSTS off) SELECT * FROM r_t1 WHERE c1 < 100;
QUERY PLAN
-------------------------------------------------------------------------------
Index Scan using r_t1_pkey on r_t1 (actual time=1.099..1.134 rows=99 loops=1)
Index Cond: (c1 < 100)
Planning Time: 0.055 ms
Execution Time: 1.163 ms
Peak Memory Usage: 0 kB
(5 rows)
=# EXPLAIN (ANALYZE on, COSTS off) SELECT * FROM h_t1 WHERE c1 < 100;
QUERY PLAN
-----------------------------------------------------------------
Seq Scan on h_t1 (actual time=19.090..2783.098 rows=99 loops=1)
Filter: (c1 < 100)
Rows Removed by Filter: 599901
Planning Time: 1.557 ms
Execution Time: 2783.488 ms
Peak Memory Usage: 0 kB
(6 rows)
同じInteger型の列に定義した主キーの範囲検索で
あっても、ハッシュインデックスではインデックスが効かない
© 2023 NTT DATA Corporation 13
YugabyteDBのユニークな処理 – remote filter -
YugabyteDBではストレージ層のKVS(DocDB)からデータを読み取り、YSQLの層(postgresのバックエンドプロセス)でFilter
や結合を実施する。そのためSeqScanなどは大量のデータをDocDBから読み込むことになる。
=# EXPLAIN (ANALYZE on,DIST on,COSTS off) SELECT * FROM h_t1 WHERE c1 < 100;
QUERY PLAN
-------------------------------------------------------------------------------
Seq Scan on h_t1 (actual time=13.273..3742.157 rows=99 loops=1)
Filter: (c1 < 100)
Rows Removed by Filter: 599901
Storage Table Read Requests: 588
Storage Table Execution Time: 3636.899 ms
Planning Time: 0.058 ms
Execution Time: 3742.478 ms
Storage Read Requests: 588
Storage Write Requests: 0
Storage Execution Time: 3636.899 ms
Peak Memory Usage: 0 kB
(11 rows)
Tserver
YSQL
DocDB
データ
ここでFilterや結合、
集計を実施
Tserver
DocDB
Tserver
DocDB
© 2023 NTT DATA Corporation 14
YugabyteDBのユニークな処理 – remote filter -
YugabyteDBではDocDB側へ一部のFilter演算をPushdownし、データのリクエスト量・回数を抑えることが可能。
Pushdownされた処理はRemote Filterとして表示される。
=# SET yb_enable_expression_pushdown TO on;
SET
=# EXPLAIN (ANALYZE on,DIST on,COSTS off) SELECT * FROM h_t1 WHERE c1 < 100;
QUERY PLAN
-------------------------------------------------------------------------------
Seq Scan on h_t1 (actual time=1211.024..2408.519 rows=99 loops=1)
Remote Filter: (c1 < 100)
Storage Table Read Requests: 2
Storage Table Execution Time: 2406.933 ms
Planning Time: 0.061 ms
Execution Time: 2408.693 ms
Storage Read Requests: 2
Storage Write Requests: 0
Storage Execution Time: 2406.933 ms
Peak Memory Usage: 14 kB
(10 rows)
=# EXPLAIN (ANALYZE on,DIST on,COSTS off) SELECT * FROM h_t1 WHERE c1 < 100;
QUERY PLAN
-----------------------------------------------------------------------------
--
Seq Scan on h_t1 (actual time=13.273..3742.157 rows=99 loops=1)
Filter: (c1 < 100)
Rows Removed by Filter: 599901
Storage Table Read Requests: 588
Storage Table Execution Time: 3636.899 ms
Planning Time: 0.058 ms
Execution Time: 3742.478 ms
Storage Read Requests: 588
Storage Write Requests: 0
Storage Execution Time: 3636.899 ms
Peak Memory Usage: 0 kB
(11 rows)
Remote Filterが有効に働くと、Storage~のリクエスト数などが
低減し、性能が向上することがある。
© 2023 NTT DATA Corporation 15
YugabyteDBのユニークな処理 – batched nested loop -
YugabyteDBではDocDB側からRPC経由でデータを取得するため、Nested Loopのような処理はNWレイテンシの影響など
を受けやすい。Range分割しているキーで範囲検索をするとある程度まとめてデータを取得できるが、Innerのテーブルへの検索
は多くのLoopとなる。
=# EXPLAIN (ANALYZE on, DIST on, COSTS off, TIMING off)
SELECT * FROM r_t1 r1, r_t2 r2 WHERE r1.c1 = r2.c1 AND r1.c1 < 2000;
QUERY PLAN
------------------------------------------------------------------------
Nested Loop (actual rows=1999 loops=1)
-> Index Scan using r_t1_pkey on r_t1 r1 (actual rows=1999 loops=1)
Index Cond: (c1 < 2000)
Storage Index Read Requests: 2
-> Index Scan using r_t2_pkey on r_t2 r2 (actual rows=1 loops=1999)
Index Cond: (c1 = r1.c1)
Storage Index Read Requests: 1
Planning Time: 0.116 ms
Execution Time: 309.301 ms
Storage Read Requests: 2001
Storage Write Requests: 0
Storage Execution Time: 262.997 ms
Peak Memory Usage: 24 kB
(13 rows)
Innerテーブルとなるr_t2に1999回のアクセス
Tserver
YSQL
DocDB
ここでFilterや結合、
集計を実施
Tserver
DocDB
Tserver
DocDB
© 2023 NTT DATA Corporation 16
YugabyteDBのユニークな処理 – batched nested loop -
YugabyteDBではyb_bnl_batch_sizeという動的に変更できるパラメータがあり、
「ANY(ARRAY[指定した数値分のデータ])」を利用してバッチ的にInnerテーブルへ引き当てに行く。
=# SET yb_bnl_batch_size = 5;
=# EXPLAIN (ANALYZE on, DIST on, COSTS off, TIMING off)
SELECT * FROM r_t1 r1, r_t2 r2 WHERE r1.c1 = r2.c1 AND r1.c1 < 2000;
QUERY PLAN
------------------------------------------------------------------------
YB Batched Nested Loop Join (actual rows=1999 loops=1)
Join Filter: (r1.c1 = r2.c1)
-> Index Scan using r_t1_pkey on r_t1 r1 (actual rows=1999 loops=1)
Index Cond: (c1 < 2000)
Storage Index Read Requests: 2
-> Index Scan using r_t2_pkey on r_t2 r2 (actual rows=5 loops=400)
Index Cond: (c1 = ANY (ARRAY[r1.c1, $1, $2, $3, $4]))
Storage Index Read Requests: 3
Planning Time: 0.134 ms
Execution Time: 210.351 ms
Storage Read Requests: 1202
Storage Write Requests: 0
Storage Execution Time: 183.998 ms
Peak Memory Usage: 237 kB
batch_sizeを5にすると、一度のIndex Scanで5件の検索をまとめて行う。
結果的にDocDBへのリクエスト数も減り、性能向上する。
(このケースだとsizeを100に引き上げると40msec程度までレスポンスタイムが改善。)
© 2023 NTT DATA Corporation 17
YugabyteDBのユニークなポイント
現時点のYugabyteDBは統計情報を収集しておらず、また活用することもしない。つまりルールベース オプティマイズと同様。
内部では固定値の行見積値を使っているため、想定行数は一定となる。また基本的にインデックスが使える場合はIndex Scan
を使用するようになる。ANALYZEはbeta機能として利用可能。
=# EXPLAIN SELECT * FROM r_t1 WHERE c1 = 1; -- 主キーで1件
QUERY PLAN
-----------------------------------------------------------------------
Index Scan using r_t1_pkey on r_t1 (cost=0.00..4.11 rows=1 width=52)
Index Cond: (c1 = 1)
(2 rows)
=# EXPLAIN SELECT * FROM r_t1 WHERE c1 < 100; -- 主キー範囲で99件
QUERY PLAN
-----------------------------------------------------------------------
Index Scan using r_t1_pkey on r_t1 (cost=0.00..4.11 rows=1 width=52)
Index Cond: (c1 < 100)
(2 rows)
=# EXPLAIN SELECT * FROM r_t1 WHERE c1 > 0; -- 主キー範囲で60万件
QUERY PLAN
-----------------------------------------------------------------------
Index Scan using r_t1_pkey on r_t1 (cost=0.00..4.11 rows=1 width=52)
Index Cond: (c1 > 0)
(2 rows)
© 2023 NTT DATA Corporation 18
YugabyteDBのユニークなポイント
前述のとおり統計情報を利用せず、インデックススキャンを積極的に利用する傾向が強いため、必然的にNested Loop結合が
選択されやすい。もともとYugabyteDBでは大量データのスキャンなどは得意としていないので、比較的多くの行を選択したり結
合する場合、HINT句の活用を視野に入れる必要がある。
=# EXPLAIN ANALYZE SELECT * FROM r_t1 r JOIN h_t1 h ON r.c1 = h.c1 WHERE r.c1 < 1000000;
QUERY PLAN
---------------------------------------------------------------------------------------------------------------------------------
Nested Loop (cost=0.00..8.23 rows=1 width=104) (actual time=8.286..244997.931 rows=600000 loops=1)
-> Index Scan using r_t1_pkey on r_t1 r (cost=0.00..4.11 rows=1 width=52) (actual time=7.775..1382.285 rows=600000 loops=1)
Index Cond: (c1 < 1000000)
-> Index Scan using h_t1_pkey on h_t1 h (cost=0.00..4.11 rows=1 width=52) (actual time=0.387..0.387 rows=1 loops=600000)
Index Cond: (c1 = r.c1)
Planning Time: 0.212 ms
Execution Time: 245603.057 ms
Peak Memory Usage: 32 kB
(8 rows)
=# /*+ HashJoin(r h) */ EXPLAIN ANALYZE SELECT * FROM r_t1 r JOIN h_t1 h ON r.c1 = h.c1 WHERE r.c1 < 1000000;
QUERY PLAN
---------------------------------------------------------------------------------------------------------------------------------------
Hash Join (cost=4.12..106.76 rows=1 width=104) (actual time=4548.694..9061.421 rows=600000 loops=1)
Hash Cond: (h.c1 = r.c1)
-> Seq Scan on h_t1 h (cost=0.00..100.00 rows=1000 width=52) (actual time=6.727..3051.250 rows=600000 loops=1)
-> Hash (cost=4.11..4.11 rows=1 width=52) (actual time=4541.308..4541.309 rows=600000 loops=1)
Buckets: 65536 (originally 1024) Batches: 16 (originally 1) Memory Usage: 3725kB
-> Index Scan using r_t1_pkey on r_t1 r (cost=0.00..4.11 rows=1 width=52) (actual time=7.352..3880.254 rows=600000 loops=1)
Index Cond: (c1 < 1000000)
Planning Time: 0.294 ms
Execution Time: 9503.739 ms
Peak Memory Usage: 5899 kB
(10 rows)
© 2023 NTT DATA Corporation 19
まとめ
YugabyteDBでの実行計画の取得方法と簡単な見方、およびYugabyteDB特有の実行計画に関する機能・仕組みを紹介し
ました。PostgreSQLに慣れた方ならば、それと気づかずにYugabyteDBの実行計画を読めてしまうかもしれません。
どんなDBMSであっても実行計画の読み解きは必要となるスキルなので、ぜひ色々なクエリ、DBMSの実行計画を読んでみましょう。
© 2023 NTT DATA Corporation 20
参考
YugabyteDBのEXPLAIN
https://docs.yugabyte.com/preview/api/ysql/the-sql-language/statements/perf_explain/
PostgreSQLのEXPLAIN
https://www.postgresql.org/docs/current/sql-explain.html
YugabyteDBのHINT句利用方法
https://docs.yugabyte.com/preview/explore/query-1-performance/pg-hint-plan/
© 2022 NTT DATA Corporation
その他、記載されている会社名、商品名、又はサービス名は、
各社の登録商標又は商標です。

Contenu connexe

Tendances

PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLの統計情報について(第26回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
 
iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方歩 柴田
 
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションMasahiko Sawada
 
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)NTT DATA Technology & Innovation
 
PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報Masahiko Sawada
 
オンライン物理バックアップの排他モードと非排他モードについて ~PostgreSQLバージョン15対応版~(第34回PostgreSQLアンカンファレンス...
オンライン物理バックアップの排他モードと非排他モードについて ~PostgreSQLバージョン15対応版~(第34回PostgreSQLアンカンファレンス...オンライン物理バックアップの排他モードと非排他モードについて ~PostgreSQLバージョン15対応版~(第34回PostgreSQLアンカンファレンス...
オンライン物理バックアップの排他モードと非排他モードについて ~PostgreSQLバージョン15対応版~(第34回PostgreSQLアンカンファレンス...NTT DATA Technology & Innovation
 
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイントPostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイントNTT DATA OSS Professional Services
 
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)NTT DATA Technology & Innovation
 
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)
レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)
レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
Dbts2013 特濃jpoug log_file_sync
Dbts2013 特濃jpoug log_file_syncDbts2013 特濃jpoug log_file_sync
Dbts2013 特濃jpoug log_file_syncKoji Shinkubo
 
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~Miki Shimogai
 
行ロックと「LOG: process 12345 still waiting for ShareLock on transaction 710 afte...
行ロックと「LOG:  process 12345 still waiting for ShareLock on transaction 710 afte...行ロックと「LOG:  process 12345 still waiting for ShareLock on transaction 710 afte...
行ロックと「LOG: process 12345 still waiting for ShareLock on transaction 710 afte...Masahiko Sawada
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)NTT DATA Technology & Innovation
 

Tendances (20)

PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLの統計情報について(第26回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データ テクノ...
 
ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開
 
iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方
 
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーション
 
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
 
PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報
 
オンライン物理バックアップの排他モードと非排他モードについて ~PostgreSQLバージョン15対応版~(第34回PostgreSQLアンカンファレンス...
オンライン物理バックアップの排他モードと非排他モードについて ~PostgreSQLバージョン15対応版~(第34回PostgreSQLアンカンファレンス...オンライン物理バックアップの排他モードと非排他モードについて ~PostgreSQLバージョン15対応版~(第34回PostgreSQLアンカンファレンス...
オンライン物理バックアップの排他モードと非排他モードについて ~PostgreSQLバージョン15対応版~(第34回PostgreSQLアンカンファレンス...
 
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイントPostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
 
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
 
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)
レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)
レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Dbts2013 特濃jpoug log_file_sync
Dbts2013 特濃jpoug log_file_syncDbts2013 特濃jpoug log_file_sync
Dbts2013 特濃jpoug log_file_sync
 
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
 
行ロックと「LOG: process 12345 still waiting for ShareLock on transaction 710 afte...
行ロックと「LOG:  process 12345 still waiting for ShareLock on transaction 710 afte...行ロックと「LOG:  process 12345 still waiting for ShareLock on transaction 710 afte...
行ロックと「LOG: process 12345 still waiting for ShareLock on transaction 710 afte...
 
PostgreSQL: XID周回問題に潜む別の問題
PostgreSQL: XID周回問題に潜む別の問題PostgreSQL: XID周回問題に潜む別の問題
PostgreSQL: XID周回問題に潜む別の問題
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
 
Vacuum徹底解説
Vacuum徹底解説Vacuum徹底解説
Vacuum徹底解説
 

Similaire à YugabyteDBの実行計画を眺める(NewSQL/分散SQLデータベースよろず勉強会 #3 発表資料)

Pgunconf 20121212-postgeres fdw
Pgunconf 20121212-postgeres fdwPgunconf 20121212-postgeres fdw
Pgunconf 20121212-postgeres fdwToshi Harada
 
Maatkit で MySQL チューニング
Maatkit で MySQL チューニングMaatkit で MySQL チューニング
Maatkit で MySQL チューニングKensuke Nagae
 
20090107 Postgre Sqlチューニング(Sql編)
20090107 Postgre Sqlチューニング(Sql編)20090107 Postgre Sqlチューニング(Sql編)
20090107 Postgre Sqlチューニング(Sql編)Hiromu Shioya
 
TPC-DSから学ぶPostgreSQLの弱点と今後の展望
TPC-DSから学ぶPostgreSQLの弱点と今後の展望TPC-DSから学ぶPostgreSQLの弱点と今後の展望
TPC-DSから学ぶPostgreSQLの弱点と今後の展望Kohei KaiGai
 
HandlerSocket plugin for MySQL
HandlerSocket plugin for MySQLHandlerSocket plugin for MySQL
HandlerSocket plugin for MySQLakirahiguchi
 
RailsエンジニアのためのSQLチューニング速習会
RailsエンジニアのためのSQLチューニング速習会RailsエンジニアのためのSQLチューニング速習会
RailsエンジニアのためのSQLチューニング速習会Nao Minami
 
PostgreSQL13 新機能紹介
PostgreSQL13 新機能紹介PostgreSQL13 新機能紹介
PostgreSQL13 新機能紹介Satoshi Hirata
 
そうだ 検証、しよう。
そうだ 検証、しよう。そうだ 検証、しよう。
そうだ 検証、しよう。健一 三原
 
PostgreSQL Unconference #5 ICU Collation
PostgreSQL Unconference #5 ICU CollationPostgreSQL Unconference #5 ICU Collation
PostgreSQL Unconference #5 ICU CollationNoriyoshi Shinoda
 
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編Yosuke Onoue
 
generate_series関数使い込み
generate_series関数使い込みgenerate_series関数使い込み
generate_series関数使い込みkawarasho
 
Introduction new features in Spark 3.0
Introduction new features in Spark 3.0Introduction new features in Spark 3.0
Introduction new features in Spark 3.0Kazuaki Ishizaki
 
Let's scale-out PostgreSQL using Citus (Japanese)
Let's scale-out PostgreSQL using Citus (Japanese)Let's scale-out PostgreSQL using Citus (Japanese)
Let's scale-out PostgreSQL using Citus (Japanese)Noriyoshi Shinoda
 
Introduction of Oracle Database Architecture
Introduction of Oracle Database ArchitectureIntroduction of Oracle Database Architecture
Introduction of Oracle Database ArchitectureRyota Watabe
 
[Cloud OnAir] Google Networking Deep Dive ! その技術と設計の紹介 2018年8月9日 放送
[Cloud OnAir] Google Networking Deep Dive ! その技術と設計の紹介 2018年8月9日 放送[Cloud OnAir] Google Networking Deep Dive ! その技術と設計の紹介 2018年8月9日 放送
[Cloud OnAir] Google Networking Deep Dive ! その技術と設計の紹介 2018年8月9日 放送Google Cloud Platform - Japan
 
20190625 OpenACC 講習会 第3部
20190625 OpenACC 講習会 第3部20190625 OpenACC 講習会 第3部
20190625 OpenACC 講習会 第3部NVIDIA Japan
 
PostgreSQL - C言語によるユーザ定義関数の作り方
PostgreSQL - C言語によるユーザ定義関数の作り方PostgreSQL - C言語によるユーザ定義関数の作り方
PostgreSQL - C言語によるユーザ定義関数の作り方Satoshi Nagayasu
 
20181211 - PGconf.ASIA - NVMESSD&GPU for BigData
20181211 - PGconf.ASIA - NVMESSD&GPU for BigData20181211 - PGconf.ASIA - NVMESSD&GPU for BigData
20181211 - PGconf.ASIA - NVMESSD&GPU for BigDataKohei KaiGai
 

Similaire à YugabyteDBの実行計画を眺める(NewSQL/分散SQLデータベースよろず勉強会 #3 発表資料) (20)

Pgunconf 20121212-postgeres fdw
Pgunconf 20121212-postgeres fdwPgunconf 20121212-postgeres fdw
Pgunconf 20121212-postgeres fdw
 
Maatkit で MySQL チューニング
Maatkit で MySQL チューニングMaatkit で MySQL チューニング
Maatkit で MySQL チューニング
 
20090107 Postgre Sqlチューニング(Sql編)
20090107 Postgre Sqlチューニング(Sql編)20090107 Postgre Sqlチューニング(Sql編)
20090107 Postgre Sqlチューニング(Sql編)
 
TPC-DSから学ぶPostgreSQLの弱点と今後の展望
TPC-DSから学ぶPostgreSQLの弱点と今後の展望TPC-DSから学ぶPostgreSQLの弱点と今後の展望
TPC-DSから学ぶPostgreSQLの弱点と今後の展望
 
HandlerSocket plugin for MySQL
HandlerSocket plugin for MySQLHandlerSocket plugin for MySQL
HandlerSocket plugin for MySQL
 
RailsエンジニアのためのSQLチューニング速習会
RailsエンジニアのためのSQLチューニング速習会RailsエンジニアのためのSQLチューニング速習会
RailsエンジニアのためのSQLチューニング速習会
 
PostgreSQL13 新機能紹介
PostgreSQL13 新機能紹介PostgreSQL13 新機能紹介
PostgreSQL13 新機能紹介
 
PostgreSQL 12の話
PostgreSQL 12の話PostgreSQL 12の話
PostgreSQL 12の話
 
そうだ 検証、しよう。
そうだ 検証、しよう。そうだ 検証、しよう。
そうだ 検証、しよう。
 
PostgreSQL Unconference #5 ICU Collation
PostgreSQL Unconference #5 ICU CollationPostgreSQL Unconference #5 ICU Collation
PostgreSQL Unconference #5 ICU Collation
 
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編
 
generate_series関数使い込み
generate_series関数使い込みgenerate_series関数使い込み
generate_series関数使い込み
 
Introduction new features in Spark 3.0
Introduction new features in Spark 3.0Introduction new features in Spark 3.0
Introduction new features in Spark 3.0
 
Let's scale-out PostgreSQL using Citus (Japanese)
Let's scale-out PostgreSQL using Citus (Japanese)Let's scale-out PostgreSQL using Citus (Japanese)
Let's scale-out PostgreSQL using Citus (Japanese)
 
Introduction of Oracle Database Architecture
Introduction of Oracle Database ArchitectureIntroduction of Oracle Database Architecture
Introduction of Oracle Database Architecture
 
[Cloud OnAir] Google Networking Deep Dive ! その技術と設計の紹介 2018年8月9日 放送
[Cloud OnAir] Google Networking Deep Dive ! その技術と設計の紹介 2018年8月9日 放送[Cloud OnAir] Google Networking Deep Dive ! その技術と設計の紹介 2018年8月9日 放送
[Cloud OnAir] Google Networking Deep Dive ! その技術と設計の紹介 2018年8月9日 放送
 
20190625 OpenACC 講習会 第3部
20190625 OpenACC 講習会 第3部20190625 OpenACC 講習会 第3部
20190625 OpenACC 講習会 第3部
 
PostgreSQL - C言語によるユーザ定義関数の作り方
PostgreSQL - C言語によるユーザ定義関数の作り方PostgreSQL - C言語によるユーザ定義関数の作り方
PostgreSQL - C言語によるユーザ定義関数の作り方
 
20181211 - PGconf.ASIA - NVMESSD&GPU for BigData
20181211 - PGconf.ASIA - NVMESSD&GPU for BigData20181211 - PGconf.ASIA - NVMESSD&GPU for BigData
20181211 - PGconf.ASIA - NVMESSD&GPU for BigData
 

Plus de 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
 
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の実現に向けた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
 
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)NTT DATA Technology & Innovation
 
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...NTT DATA Technology & Innovation
 
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)NTT DATA Technology & Innovation
 
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)NTT DATA Technology & Innovation
 
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 

Plus de NTT DATA Technology & Innovation (20)

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 発表資料)
 
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の実現に向けた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年度秋季研究発表大会 発表資料)
 
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
 
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
 
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
 
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
 
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
 

Dernier

モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 

Dernier (7)

モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 

YugabyteDBの実行計画を眺める(NewSQL/分散SQLデータベースよろず勉強会 #3 発表資料)

  • 1. © 2023 NTT DATA Corporation © 2023 NTT DATA Corporation NewSQL/分散SQLデータベース よろず勉強会 #3 YugabyteDBの実行計画を眺める 2023年2月16日 NTTデータ 笠原辰仁
  • 2. © 2023 NTT DATA Corporation 2 自己紹介 • 笠原 辰仁 (@kasa_zip) • 長年PostgreSQLの検証や周辺ツールの開発、サポートなどに従事 • 最近はNewSQLや分散データベースに属するOSSプロダクトの調査や検証、 適用領域の見極めなど • 本日は、分散データベースのOSSプロダクトであるYugabyteDBの実行計画の取得方法や 情報の見方を解説
  • 3. © 2023 NTT DATA Corporation 3 実行計画とは 発行されたクエリをどのように実行するかをDBMSが生成する情報。一般的にはDBMSのPlannerやOptimizerと呼ばれる機能 が生成する。 通常、あまりユーザ(クエリを発行する人)が実行計画を意識することは無いが、思ったような性能が出ない場合の原因解析やクエ リチューニングを行った効果などを調査したい時に、とても有用なもの。 SELECT * FROM t1 JOIN t2 ON t1.c1 = t2.c1 WHERE t1.c1 < 10; QUERY PLAN -------------------------------------- Nested Loop Join Filter: (t1.c1 = t2.c1) -> Index Scan using t1_pkey on t1 Index Cond: (c1 < 10) -> Seq Scan on t2 YugabyteDB (のPlanner)
  • 4. © 2023 NTT DATA Corporation 4 実行計画の取得方法 YugabyteDBでは他のDBMSと同様にEXPLAINという句をクエリの先頭に付与することで実行計画を取得できる。 クエリは実際には実行されない。出力される情報はPostgreSQLとほぼ同じ。 yugabyte=# EXPLAIN SELECT * FROM r_t1 WHERE c1 < 100; QUERY PLAN ----------------------------------------------------------------------- Index Scan using r_t1_pkey on r_t1 (cost=0.00..4.11 rows=1 width=52) Index Cond: (c1 < 100) (2 rows) yugabyte=# EXPLAIN SELECT * FROM r_t1; QUERY PLAN ---------------------------------------------------------- Seq Scan on r_t1 (cost=0.00..100.00 rows=1000 width=52) (1 row) yugabyte=# EXPLAIN SELECT * FROM r_t1 r JOIN h_t1 h ON r.c1 = h.c1 WHERE r.c1 < 100; QUERY PLAN ------------------------------------------------------------------------------- Nested Loop (cost=0.00..8.23 rows=1 width=104) -> Index Scan using r_t1_pkey on r_t1 r (cost=0.00..4.11 rows=1 width=52) Index Cond: (c1 < 100) -> Index Scan using h_t1_pkey on h_t1 h (cost=0.00..4.11 rows=1 width=52) Index Cond: (c1 = r.c1) (5 rows)
  • 5. © 2023 NTT DATA Corporation 5 実行計画の取得方法 EXPLAINではオプションをいくつか付与することで様々な情報を出力できる。 オプション 説明 ANALYZE 指定したクエリを実行し、実際の所要時間や消費した各種リソース(IOやメモリなど)の情報を出力する。 VERBOSE SELECT列の射影対象や中間処理での出力対象を出力する。 COSTS 実行計画のコスト情報を出力する。デフォルト有効。 TIMING 実行時の所要時間を出力する。ANALYZEの指定が必須でデフォルト有効。 BUFFERS 実行過程における巨大なハッシュやソート処理の一時ファイル書き出しで使用されたバッファサイズを出力す る。ANALYZEの指定が必須。 SUMMARY 実行計画の末尾にプラン作成時間、実行時間、総メモリ消費量などを出力する。デフォルト有効。 FORMAT 実行計画情報の出力形式を指定する。TEXT、JSON、YAML、XMLから選択できデフォルトはTEXT。 DIST ストレージ層のDocDBへの読み書きリクエスト数やDocDBでの所要時間を出力する。 ANALYZEオプションを付与することで実際の所要時間が分かるため多用することが多い。ただし実際にクエリが実行されるため更 新系の処理を対象にするときは注意。(BEGIN; ABORT;で囲うなど工夫がいる) COSTSやTIMING、SUMMARYについては変動要素の強い出力情報になるので、リグレッションテストなどの出力と期待のdiff を取るときなどのノイズ除去として用いられたり、実行計画を簡潔に出力したい場合などに用いる。
  • 6. © 2023 NTT DATA Corporation 6 EXPLAINの文法 EXPLAINでは複数のオプションを組み合わせて使用できる。以下のようにEXPLAIN (オプション [,..]) の形で指定する。 EXPLAIN (ANALYZE, BUFFERS, VERBOSE) SELECT … 上記はANALYZE、BUFFERS、VERBOSEを有効にしている。オプション [on | off] の形を取ることもできる。 EXPLAIN (ANALYZE on, BUFFERS on, COSTS off) SELECT … 上記はANALYZE、BUFFERSを有効にし、COSTSを無効にしている。 EXPLAINは通常のSELECTやUPDATEなどのクエリの他、カーソルのDECLARE、準備文(Prepared Statement)に対する EXECUTEにも使用することができる。 PREPARE p1(int) AS SELECT … WHERE c1 = $1; EXPLAIN (ANALYZE on, BUFFERS on) EXECUTE p1(10); EXPLAIN (ANALYZE on, BUFFERS on) DECLARE cur FOR SELECT …
  • 7. © 2023 NTT DATA Corporation 7 実行計画の見方 => EXPLAIN SELECT * FROM r_t1 r JOIN h_t1 h ON r.c1 = h.c1 WHERE h.c1 < 10; QUERY PLAN ------------------------------------------------------------------------------- Nested Loop (cost=0.00..216.39 rows=1000 width=104) -> Seq Scan on h_t1 h (cost=0.00..102.50 rows=1000 width=52) Filter: (c1 < 10) -> Index Scan using r_t1_pkey on r_t1 r (cost=0.00..0.11 rows=1 width=52) Index Cond: (c1 = h.c1) (5 rows) 赤字部分はノードタイプとも呼ばれ、実行されるスキャン、 結合、集計等の各処理の種別を表す。 基本的にネストの深い方(右の方)から順次実行されていく 代表的なノードタイプには以下がある。 • スキャン:Seq Scan/Index Scan/Index Only Scan • 結合:Nested Loop/Merge Join/Hash Join (Semi/Anti) • 集計:HashAggregate/GroupAggregate • 更新:Insert/Update/Delete • その他:Sort/Limit/Result/Append… など。 ちなみにPostgreSQLにあるBitmapScanは無い まず計画そのものとなるノード情報。
  • 8. © 2023 NTT DATA Corporation 8 実行計画の見方 => EXPLAIN SELECT * FROM r_t1 r JOIN h_t1 h ON r.c1 = h.c1 WHERE h.c1 < 10; QUERY PLAN ------------------------------------------------------------------------------- Nested Loop (cost=0.00..216.39 rows=1000 width=104) -> Seq Scan on h_t1 h (cost=0.00..102.50 rows=1000 width=52) Filter: (c1 < 10) -> Index Scan using r_t1_pkey on r_t1 r (cost=0.00..0.11 rows=1 width=52) Index Cond: (c1 = h.c1) (5 rows) 赤字部分はコストに関する情報で、N.NN .. M.MMはそれぞれ スタートアップコスト(そのノードを開始するための準備コスト)と トータルコスト(ノード処理を一通り完了するまでの総コスト)。 rowsは各ノードで取得する予想行数。 widthは各ノードで取得する列幅の総サイズ。 コストの計算式はPostgreSQLと同様のロジックだが、 YugabyteDB特有の要素がいくつかある。(異なるゾーン やリージョンへの問い合わせコストは別途追加するなど) src/backend/access/yb_access/yb_scan.cの ybcCostEstimate() Plannerが実行計画の作成の根拠とした見積情報。
  • 9. © 2023 NTT DATA Corporation 9 実行計画の見方 => EXPLAIN (ANALYZE on, COSTS off) SELECT r.c1, r.c4 FROM r_t1 r JOIN h_t1 h ON r.c1 = h.c1 WHERE h.c1 < 100; QUERY PLAN --------------------------------------------------------------------------------------- Nested Loop (actual time=12.706..1979.256 rows=99 loops=1) -> Seq Scan on h_t1 h (actual time=7.545..1669.513 rows=99 loops=1) Filter: (c1 < 100) Rows Removed by Filter: 599901 -> Index Scan using r_t1_pkey on r_t1 r (actual time=3.108..3.108 rows=1 loops=99) Index Cond: (c1 = h.c1) Planning Time: 0.127 ms Execution Time: 1979.423 ms Peak Memory Usage: 30 kB (9 rows) 赤字部分は実際にかかった時間や取得した行数情報。 actual timeのNN.NN .. MM.MMは各ノードで最初の1行を取得す るまでの時間(ms)と最後の行を取得するまでの時間(ms)。 rowsは各ノードで取得された件数。 loopsは各ノードが繰り返された回数。 Rows Removed by Filterはスキャンした件数のうち条件により除去 された件数。 loopsが2以上の場合、実際にかかる時間は 「actual time」 * 「loops回数」となる。 loopsが多いものはactual timeが短くても注意すると良い。 実際にクエリを実行した場合の所要時間や取得した件数などの情報。
  • 10. © 2023 NTT DATA Corporation 10 実行計画の見方 => EXPLAIN (ANALYZE on, COSTS off) SELECT r.c1, r.c4 FROM r_t1 r JOIN h_t1 h ON r.c1 = h.c1 WHERE h.c1 < 100; QUERY PLAN --------------------------------------------------------------------------------------- Nested Loop (actual time=12.706..1979.256 rows=99 loops=1) -> Seq Scan on h_t1 h (actual time=7.545..1669.513 rows=99 loops=1) Filter: (c1 < 100) Rows Removed by Filter: 599901 -> Index Scan using r_t1_pkey on r_t1 r (actual time=3.108..3.108 rows=1 loops=99) Index Cond: (c1 = h.c1) Planning Time: 0.127 ms Execution Time: 1979.423 ms Peak Memory Usage: 30 kB (9 rows) 赤字部分はサマリ情報。 Planning Timeはプラン作成にかかった時間。 Execution Timeはクエリ処理にかかった総時間。 Peak Memory Usageはクエリ処理中の最もメモリを消費していた際 の利用量(Tserver上のpostgresバックエンドでの消費量)。 Execution TimeはYugabyteDB内での所要時間となり、 クライアントへ結果を返すなどの通信時間などは含まれない ので注意。 実際にクエリを実行した場合のサマリ情報。
  • 11. © 2023 NTT DATA Corporation 11 実行計画の見方 => EXPLAIN (ANALYZE on, DIST on, COSTS off) SELECT r.c1, r.c4 FROM r_t1 r JOIN h_t1 h ON r.c1 = h.c1 WHERE h.c1 < 100; QUERY PLAN --------------------------------------------------------------------------------------- Nested Loop (actual time=20.376..1765.325 rows=99 loops=1) -> Seq Scan on h_t1 h (actual time=6.409..1478.253 rows=99 loops=1) Filter: (c1 < 100) Rows Removed by Filter: 599901 Storage Table Read Requests: 588 Storage Table Execution Time: 1424.985 ms -> Index Scan using r_t1_pkey on r_t1 r (actual time=2.882..2.882 rows=1 loops=99) Index Cond: (c1 = h.c1) Storage Index Read Requests: 1 Storage Index Execution Time: 2.859 ms Planning Time: 0.085 ms Execution Time: 1765.460 ms Storage Read Requests: 687 Storage Write Requests: 0 Storage Execution Time: 1707.983 ms Peak Memory Usage: 30 kB (16 rows) 赤字部分はストレージ(DocDB)での処理時間や回数の情報。 Storage Table~はSeqScan処理でDocDBへ行われたRPCの回数と所要時間。 Storage Index~はIndex Scan処理でDocDBへ行われたRPCの回数と所要時 間。 Storage Read/Write RequestはDocDBへリクエストされたRPCの総回数。 Storage Execution TimeはDocDBでの処理総時間。 なお、loopsが2以上の場合はStorage~Requestsはその回数だけ実施される。 DISTオプションによる実際にクエリを実行した場合のDocDBでの処理時間やリクエスト回数などの情報。
  • 12. © 2023 NTT DATA Corporation 12 YugabyteDBのユニークな処理 – HashとRange - YugabyteDBではインデックスはデフォルトでハッシュインデックスが利用される。そのため範囲検索を多用する場合はインデックス 定義に注意しておく。 =# CREATE TABLE r_t1 (c1 int, c2 int, c3 int, c4 text, c5 timestamp, primary key (c1 ASC)); -- 主キーはRange =# CREATE TABLE h_t1 (c1 int, c2 int, c3 int, c4 text, c5 timestamp, primary key (c1)); -- 主キーはHash (各テーブルに60万件ほど投入) =# EXPLAIN (ANALYZE on, COSTS off) SELECT * FROM r_t1 WHERE c1 < 100; QUERY PLAN ------------------------------------------------------------------------------- Index Scan using r_t1_pkey on r_t1 (actual time=1.099..1.134 rows=99 loops=1) Index Cond: (c1 < 100) Planning Time: 0.055 ms Execution Time: 1.163 ms Peak Memory Usage: 0 kB (5 rows) =# EXPLAIN (ANALYZE on, COSTS off) SELECT * FROM h_t1 WHERE c1 < 100; QUERY PLAN ----------------------------------------------------------------- Seq Scan on h_t1 (actual time=19.090..2783.098 rows=99 loops=1) Filter: (c1 < 100) Rows Removed by Filter: 599901 Planning Time: 1.557 ms Execution Time: 2783.488 ms Peak Memory Usage: 0 kB (6 rows) 同じInteger型の列に定義した主キーの範囲検索で あっても、ハッシュインデックスではインデックスが効かない
  • 13. © 2023 NTT DATA Corporation 13 YugabyteDBのユニークな処理 – remote filter - YugabyteDBではストレージ層のKVS(DocDB)からデータを読み取り、YSQLの層(postgresのバックエンドプロセス)でFilter や結合を実施する。そのためSeqScanなどは大量のデータをDocDBから読み込むことになる。 =# EXPLAIN (ANALYZE on,DIST on,COSTS off) SELECT * FROM h_t1 WHERE c1 < 100; QUERY PLAN ------------------------------------------------------------------------------- Seq Scan on h_t1 (actual time=13.273..3742.157 rows=99 loops=1) Filter: (c1 < 100) Rows Removed by Filter: 599901 Storage Table Read Requests: 588 Storage Table Execution Time: 3636.899 ms Planning Time: 0.058 ms Execution Time: 3742.478 ms Storage Read Requests: 588 Storage Write Requests: 0 Storage Execution Time: 3636.899 ms Peak Memory Usage: 0 kB (11 rows) Tserver YSQL DocDB データ ここでFilterや結合、 集計を実施 Tserver DocDB Tserver DocDB
  • 14. © 2023 NTT DATA Corporation 14 YugabyteDBのユニークな処理 – remote filter - YugabyteDBではDocDB側へ一部のFilter演算をPushdownし、データのリクエスト量・回数を抑えることが可能。 Pushdownされた処理はRemote Filterとして表示される。 =# SET yb_enable_expression_pushdown TO on; SET =# EXPLAIN (ANALYZE on,DIST on,COSTS off) SELECT * FROM h_t1 WHERE c1 < 100; QUERY PLAN ------------------------------------------------------------------------------- Seq Scan on h_t1 (actual time=1211.024..2408.519 rows=99 loops=1) Remote Filter: (c1 < 100) Storage Table Read Requests: 2 Storage Table Execution Time: 2406.933 ms Planning Time: 0.061 ms Execution Time: 2408.693 ms Storage Read Requests: 2 Storage Write Requests: 0 Storage Execution Time: 2406.933 ms Peak Memory Usage: 14 kB (10 rows) =# EXPLAIN (ANALYZE on,DIST on,COSTS off) SELECT * FROM h_t1 WHERE c1 < 100; QUERY PLAN ----------------------------------------------------------------------------- -- Seq Scan on h_t1 (actual time=13.273..3742.157 rows=99 loops=1) Filter: (c1 < 100) Rows Removed by Filter: 599901 Storage Table Read Requests: 588 Storage Table Execution Time: 3636.899 ms Planning Time: 0.058 ms Execution Time: 3742.478 ms Storage Read Requests: 588 Storage Write Requests: 0 Storage Execution Time: 3636.899 ms Peak Memory Usage: 0 kB (11 rows) Remote Filterが有効に働くと、Storage~のリクエスト数などが 低減し、性能が向上することがある。
  • 15. © 2023 NTT DATA Corporation 15 YugabyteDBのユニークな処理 – batched nested loop - YugabyteDBではDocDB側からRPC経由でデータを取得するため、Nested Loopのような処理はNWレイテンシの影響など を受けやすい。Range分割しているキーで範囲検索をするとある程度まとめてデータを取得できるが、Innerのテーブルへの検索 は多くのLoopとなる。 =# EXPLAIN (ANALYZE on, DIST on, COSTS off, TIMING off) SELECT * FROM r_t1 r1, r_t2 r2 WHERE r1.c1 = r2.c1 AND r1.c1 < 2000; QUERY PLAN ------------------------------------------------------------------------ Nested Loop (actual rows=1999 loops=1) -> Index Scan using r_t1_pkey on r_t1 r1 (actual rows=1999 loops=1) Index Cond: (c1 < 2000) Storage Index Read Requests: 2 -> Index Scan using r_t2_pkey on r_t2 r2 (actual rows=1 loops=1999) Index Cond: (c1 = r1.c1) Storage Index Read Requests: 1 Planning Time: 0.116 ms Execution Time: 309.301 ms Storage Read Requests: 2001 Storage Write Requests: 0 Storage Execution Time: 262.997 ms Peak Memory Usage: 24 kB (13 rows) Innerテーブルとなるr_t2に1999回のアクセス Tserver YSQL DocDB ここでFilterや結合、 集計を実施 Tserver DocDB Tserver DocDB
  • 16. © 2023 NTT DATA Corporation 16 YugabyteDBのユニークな処理 – batched nested loop - YugabyteDBではyb_bnl_batch_sizeという動的に変更できるパラメータがあり、 「ANY(ARRAY[指定した数値分のデータ])」を利用してバッチ的にInnerテーブルへ引き当てに行く。 =# SET yb_bnl_batch_size = 5; =# EXPLAIN (ANALYZE on, DIST on, COSTS off, TIMING off) SELECT * FROM r_t1 r1, r_t2 r2 WHERE r1.c1 = r2.c1 AND r1.c1 < 2000; QUERY PLAN ------------------------------------------------------------------------ YB Batched Nested Loop Join (actual rows=1999 loops=1) Join Filter: (r1.c1 = r2.c1) -> Index Scan using r_t1_pkey on r_t1 r1 (actual rows=1999 loops=1) Index Cond: (c1 < 2000) Storage Index Read Requests: 2 -> Index Scan using r_t2_pkey on r_t2 r2 (actual rows=5 loops=400) Index Cond: (c1 = ANY (ARRAY[r1.c1, $1, $2, $3, $4])) Storage Index Read Requests: 3 Planning Time: 0.134 ms Execution Time: 210.351 ms Storage Read Requests: 1202 Storage Write Requests: 0 Storage Execution Time: 183.998 ms Peak Memory Usage: 237 kB batch_sizeを5にすると、一度のIndex Scanで5件の検索をまとめて行う。 結果的にDocDBへのリクエスト数も減り、性能向上する。 (このケースだとsizeを100に引き上げると40msec程度までレスポンスタイムが改善。)
  • 17. © 2023 NTT DATA Corporation 17 YugabyteDBのユニークなポイント 現時点のYugabyteDBは統計情報を収集しておらず、また活用することもしない。つまりルールベース オプティマイズと同様。 内部では固定値の行見積値を使っているため、想定行数は一定となる。また基本的にインデックスが使える場合はIndex Scan を使用するようになる。ANALYZEはbeta機能として利用可能。 =# EXPLAIN SELECT * FROM r_t1 WHERE c1 = 1; -- 主キーで1件 QUERY PLAN ----------------------------------------------------------------------- Index Scan using r_t1_pkey on r_t1 (cost=0.00..4.11 rows=1 width=52) Index Cond: (c1 = 1) (2 rows) =# EXPLAIN SELECT * FROM r_t1 WHERE c1 < 100; -- 主キー範囲で99件 QUERY PLAN ----------------------------------------------------------------------- Index Scan using r_t1_pkey on r_t1 (cost=0.00..4.11 rows=1 width=52) Index Cond: (c1 < 100) (2 rows) =# EXPLAIN SELECT * FROM r_t1 WHERE c1 > 0; -- 主キー範囲で60万件 QUERY PLAN ----------------------------------------------------------------------- Index Scan using r_t1_pkey on r_t1 (cost=0.00..4.11 rows=1 width=52) Index Cond: (c1 > 0) (2 rows)
  • 18. © 2023 NTT DATA Corporation 18 YugabyteDBのユニークなポイント 前述のとおり統計情報を利用せず、インデックススキャンを積極的に利用する傾向が強いため、必然的にNested Loop結合が 選択されやすい。もともとYugabyteDBでは大量データのスキャンなどは得意としていないので、比較的多くの行を選択したり結 合する場合、HINT句の活用を視野に入れる必要がある。 =# EXPLAIN ANALYZE SELECT * FROM r_t1 r JOIN h_t1 h ON r.c1 = h.c1 WHERE r.c1 < 1000000; QUERY PLAN --------------------------------------------------------------------------------------------------------------------------------- Nested Loop (cost=0.00..8.23 rows=1 width=104) (actual time=8.286..244997.931 rows=600000 loops=1) -> Index Scan using r_t1_pkey on r_t1 r (cost=0.00..4.11 rows=1 width=52) (actual time=7.775..1382.285 rows=600000 loops=1) Index Cond: (c1 < 1000000) -> Index Scan using h_t1_pkey on h_t1 h (cost=0.00..4.11 rows=1 width=52) (actual time=0.387..0.387 rows=1 loops=600000) Index Cond: (c1 = r.c1) Planning Time: 0.212 ms Execution Time: 245603.057 ms Peak Memory Usage: 32 kB (8 rows) =# /*+ HashJoin(r h) */ EXPLAIN ANALYZE SELECT * FROM r_t1 r JOIN h_t1 h ON r.c1 = h.c1 WHERE r.c1 < 1000000; QUERY PLAN --------------------------------------------------------------------------------------------------------------------------------------- Hash Join (cost=4.12..106.76 rows=1 width=104) (actual time=4548.694..9061.421 rows=600000 loops=1) Hash Cond: (h.c1 = r.c1) -> Seq Scan on h_t1 h (cost=0.00..100.00 rows=1000 width=52) (actual time=6.727..3051.250 rows=600000 loops=1) -> Hash (cost=4.11..4.11 rows=1 width=52) (actual time=4541.308..4541.309 rows=600000 loops=1) Buckets: 65536 (originally 1024) Batches: 16 (originally 1) Memory Usage: 3725kB -> Index Scan using r_t1_pkey on r_t1 r (cost=0.00..4.11 rows=1 width=52) (actual time=7.352..3880.254 rows=600000 loops=1) Index Cond: (c1 < 1000000) Planning Time: 0.294 ms Execution Time: 9503.739 ms Peak Memory Usage: 5899 kB (10 rows)
  • 19. © 2023 NTT DATA Corporation 19 まとめ YugabyteDBでの実行計画の取得方法と簡単な見方、およびYugabyteDB特有の実行計画に関する機能・仕組みを紹介し ました。PostgreSQLに慣れた方ならば、それと気づかずにYugabyteDBの実行計画を読めてしまうかもしれません。 どんなDBMSであっても実行計画の読み解きは必要となるスキルなので、ぜひ色々なクエリ、DBMSの実行計画を読んでみましょう。
  • 20. © 2023 NTT DATA Corporation 20 参考 YugabyteDBのEXPLAIN https://docs.yugabyte.com/preview/api/ysql/the-sql-language/statements/perf_explain/ PostgreSQLのEXPLAIN https://www.postgresql.org/docs/current/sql-explain.html YugabyteDBのHINT句利用方法 https://docs.yugabyte.com/preview/explore/query-1-performance/pg-hint-plan/
  • 21. © 2022 NTT DATA Corporation その他、記載されている会社名、商品名、又はサービス名は、 各社の登録商標又は商標です。