データベースオブジェクトサイズのクエリ
このステップでは、PostgreSQL データベースに接続し、テーブルとそのインデックスのサイズをクエリします。データベースオブジェクトのサイズを理解することは、パフォーマンスチューニングとキャパシティプランニングにとって非常に重要です。
まず、ターミナルを開きます。postgres ユーザーとして PostgreSQL サーバーに接続し、mydatabase データベースにアクセスするには、次のコマンドを実行します。
sudo -u postgres psql mydatabase
psql プロンプト (mydatabase=#) が表示され、mydatabase データベースに接続されていることが示されます。この実験 (Lab) での以降のすべての SQL コマンドは、特に指定がない限り、この psql シェルで実行してください。
次に、mytable のサイズを調べます。pg_size_pretty 関数と pg_relation_size 関数を使用します。pg_relation_size はテーブルのサイズをバイト単位で返し、pg_size_pretty はそれを人間が読める形式(例:KB、MB)にフォーマットします。
mytable のサイズを取得するには、次の SQL クエリを実行します。
SELECT pg_size_pretty(pg_relation_size('mytable'));
テーブルのデータが使用しているディスクスペースを示す、次のような出力が表示されるはずです。
pg_size_pretty
----------------
56 kB
(1 row)
次に、name 列に作成されたインデックス idx_mytable_name のサイズを確認します。
SELECT pg_size_pretty(pg_relation_size('idx_mytable_name'));
出力は、インデックスが消費しているスペースを示します。
pg_size_pretty
----------------
48 kB
(1 row)
最後に、すべてのインデックスを含むテーブルの合計サイズを取得するには、pg_total_relation_size 関数を使用します。
SELECT pg_size_pretty(pg_total_relation_size('mytable'));
この出力は、テーブルとそのインデックスの合計サイズを示します。
pg_size_pretty
----------------
176 kB
(1 row)