□postgreSQL テーブル名とファイル名との関連を調べる。


 postgreSQLは、テーブルとファイルの関係が一致します。
Oralceなどのようなデータファイルを独自で管理するようなことはなく、OSのファイル管理を
利用する形になっています。どのテーブルのデータがどのファイルに実際格納されているかは
下記のSQL文から確認できます。

select relname , relfilenode from pg_class order by 1;


(実行例)

iplocksdb=# select relname , relfilenode from pg_class order by 1;
             relname             | relfilenode
---------------------------------+-------------
 pg_description                  |       16416
 pg_group                        |        1261
 pg_proc                         |        1255
 pg_rewrite                      |       16410
 pg_user                         |       16681
 pg_rules                        |       16684
 pg_views                        |       16688
 pg_xactlock                     |           0
 pg_tables                       |       16691
 pg_indexes                      |       16694
 pg_stats                        |       16698


relfilenode項目の数値が、ファイル名にあたる。データ格納用ディレクトリ
の同名のファイルを確認してください。只一定のサイズを超えるとロールオーバー
を起こして複数ファイルに分割されます。

その他便利なコマンド

テーブルの実際のサイズ(Byte単位):  select pg_relation_size('<テーブル名>')
データベースの実際のサイズ(Byte単位):select pg_database_size('<データベース名')


また、各データベースのデータファイルの格納されているフォルダは下記SQL文にて調べる
ことができます。

select datname,oid from pg_database;

iplrepdb=> select datname,oid from pg_database;
 datname  |  oid
----------+-------
postgres  | 10793
template1 |     1
template0 | 10792
(5 rows)

datnameがデータベース名に該当します
oidが、フォルダの名前に該当します。

<PostgreSQL データディレクトリ>\base\<oid>
または
<PostgreSQL データディレクトリ>/base/<oid>


で示されるフォルダに、PostgreSQLの各オブジェクトに対応するファイルが保存されます。
(テーブル、インデックス)

<PostgreSQL データディレクトリ>は起動時の-Dに指定するフォルダになります。
最終更新:2008年03月26日 10:15