【PostgreSQL】テーブルサイズを確認するSQL

PostgreSQL構文

スポンサーリンク

データベースとテーブルの物理容量を取得する

データベースとテーブルの物理容量を取得するSQLです。

※ここで紹介するSQLは、そのまま実行できるので試してみて下さい。

-- 1.データベースの物理容量を取得する
SELECT 
    datname,                                      -- データベース名
    pg_size_pretty(pg_database_size(datname))     -- サイズ
FROM pg_database; 
 
-- 2.テーブルの物理容量を取得する
SELECT 
    relname,                                         -- テーブル名
    reltuples as rows,                               -- データ行数
    (relpages * 8192) as bytes,                      -- サイズ(バイト単位)
    ((relpages * 8192) / (1024 * 1024)) AS mbytes    -- サイズ(MB単位)
FROM pg_class order by mbytes desc;

 

テーブルデータ数の一覧を表示する

テーブルごとのデータ数を一覧表示するSQL文を紹介します。

--テーブルごとのデータ数を表示する
SELECT 
pg_class.relname , pg_class.reltuples
FROM pg_stat_user_tables
INNER JOIN pg_class ON pg_stat_user_tables.relname = pg_class.relname
order by cast(pg_class.reltuples as numeric) desc;

 

delete文を生成するSQL

テーブル一覧を取得するSQLを使い、delete文を作成するSQLです。

※このSQLを投げると「delete from テーブル名;」の文が結果に出力されます。

--テーブル一覧からdelete文を作成する
select 
    'delete from ' || tablename || ';' as del_sql from pg_tables  -- delete文
where schemaname != 'pg_catalog'
--テーブル名で抽出するなら下の文の使います
--and tablename like '%テーブル名を指定%';

 

構文まとめを書いています。ぜひ一度見てみて下さい

「基本構文・こんな時どう書くんだっけ?」をまとめました