suer TIL

Databases

DATABASE
2026-07-22 2026-07-22
eye catch

【PostgreSQL】INCLUDE句でIndex Only Scanを実現する

Index Only Scanとは Index Only Scanはインデックスだけを読んでテーブル本体(ヒープ)にアクセスせず結果を返す実行方式である。テーブルへのアクセスが不要な分、通常のIndex Scanより高速になる。
DATABASE
2026-07-22 2026-07-22
eye catch

【PostgreSQL】pg_stat_statementsで重いクエリを特定する

pg_stat_statementsの有効化 pg_stat_statementsは、実行されたSQL文ごとに実行回数や実行時間を集計する拡張機能である。postgresql.confのshared_preload_librariesに追加し、PostgreSQLを再起動してからCREATE EXTENSIONで有効化する。
DATABASE
2026-07-22 2026-07-22
eye catch

【PostgreSQL】EXPLAIN (ANALYZE, BUFFERS)でキャッシュヒット率を確認する

BUFFERSオプションとは EXPLAINにBUFFERSオプションを付けると、クエリの実行中に読み込んだブロック数が表示される。ANALYZEと併用することで、実行計画の各ノードがどれだけ共有バッファ(キャッシュ)を使ったかを確認できる。
DATABASE
2026-07-22 2026-07-22
eye catch

【PostgreSQL】EXPLAIN ANALYZEの読み方の基本

EXPLAIN ANALYZEとは EXPLAINはクエリの実行計画を表示するコマンドである。ANALYZEオプションを付けると、実際にクエリを実行し実行時間や実際の処理件数も表示する。
DATABASE
2026-07-21 2026-07-22
eye catch

【PostgreSQL】pg_stat_activityで実行中クエリとロック待ちを確認する

実行中のクエリを確認する PostgreSQLで現在実行中のクエリを確認するにはpg_stat_activityビューをSELECTする。 SELECT pid, usename, state, query, query_start FROM pg_stat_activity; pid | usename | state | query | query_start -----+----------+--------+---------------------------------------------------------------------------------------+------------------------------- 94 | postgres | active | BEGIN; UPDATE accounts SET balance = balance - 100 WHERE id = 1; SELECT pg_sleep(30); | 2026-07-21 12:56:41.72517+00 pg_stat_activityには以下のような主要なカラムが含まれる。
DATABASE
2026-07-21 2026-07-21
eye catch

【PostgreSQL】TOASTテーブルの仕組みとサイズ確認方法

TOASTとは PostgreSQLのTOAST(The Oversized-Attribute Storage Technique)は、大きなデータを効率的に格納するための仕組み。PostgreSQLではテーブルの行サイズが約8KBに制限されているため、大きなデータはTOASTテーブルと呼ばれる別のテーブルに自動的に分割して格納される。
DATABASE
2025-12-31 2026-01-01
eye catch

【PostgreSQL】各データベースのサイズを確認する

pg_database_size(データベース名) PostgreSQLで各データベースのサイズを確認するには、pg_database_size関数を使用する。 pg_database_size関数は、引数にデータベース名を指定し、そのサイズをバイト単位で返す。
DATABASE
2025-12-24 2025-12-24
eye catch

【PostgreSQL】 データベース名を変更する

データベース名を変更する方法 PostgreSQLではデータベース名を変更するためにはALTER DATABASEを使用して以下のように実行する。 ALTER DATABASE 現在のDB名 RENAME TO 新しいDB名; 変更するには変更対象のデータベースに接続しているセッションが存在しない状態で実行する必要がある。 すべてのセッションの接続を切断した上で実行する。
DATABASE
2025-06-01 2025-06-01
eye catch

【PostgreSQL】テーブルとデータベースのoidを取得する方法

oid2nameコマンドでoidを取得する PostgreSQLのoid2nameコマンドを使用してテーブルやデータベースのoidを取得できる。 DBの一覧 DBを指定せずにoid2nameを実行すると、全てのデータベースの一覧が表示される。
DATABASE
2025-06-01 2025-06-01
eye catch

【PostgreSQL】ページャーを無効にして大量件数の結果でも一度に出力する

psqlでページャーが有効になっている場合 psqlコマンドでクエリを実行すると、結果が多い場合にページャーが有効になる。 例えば以下のように-cオプションで結果が多いクエリを実行する。 $ psql -d testdb -c "SELECT id FROM users;" id ----- 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 : 以上のようにページャーが有効になっており、末尾に:が表示される。
DATABASE
2024-12-15 2024-12-15
  • ««
  • «
  • 1
  • 2
  • »
  • »»
AUTHOR
author image
suer
ふつうのプログラマ
LATESTS
eye catch
【PostgreSQL】INCLUDE句でIndex Only Scanを実現する
DATABASE
2026-07-22 2026-07-22
eye catch
【PostgreSQL】pg_stat_statementsで重いクエリを特定する
DATABASE
2026-07-22 2026-07-22
eye catch
【PostgreSQL】EXPLAIN (ANALYZE, BUFFERS)でキャッシュヒット率を確認する
DATABASE
2026-07-22 2026-07-22
eye catch
【PostgreSQL】EXPLAIN ANALYZEの読み方の基本
DATABASE
2026-07-21 2026-07-22
eye catch
【PostgreSQL】pg_stat_activityで実行中クエリとロック待ちを確認する
DATABASE
2026-07-21 2026-07-21
  • ホーム
  • お問い合わせ
  • プライバシーポリシー

© 2022 suer