sql >> データベース >  >> RDS >> PostgreSQL

1つのクエリPOSTGRESで複数のテーブルのサイズを取得しますか?

    次の選択クエリは、すべてのテーブルとそのサイズを返します

    SELECT
       relname as mytable,
       pg_size_pretty(pg_relation_size(relid)) As size
       FROM pg_catalog.pg_statio_user_tables ORDER BY pg_total_relation_size(relid) DESC;
    

    この選択でビューを作成します

    CREATE VIEW vTableAndSize AS 
    SELECT
       relname as mytable,
       pg_size_pretty(pg_relation_size(relid)) As size
       FROM pg_catalog.pg_statio_user_tables ORDER BY pg_total_relation_size(relid) DESC;
    

    これで、このビューでクエリを実行して、次のようなサイズを取得できます

    SELECT mytable,size 
           FROM vTableAndSize WHERE mytable in ('table1','table2')
    

    OPのコメント

    CREATE VIEW vTableAndSize_1 as 
    SELECT
       relname as mytable,
       (pg_relation_size(relid)) As size
       FROM pg_catalog.pg_statio_user_tables ORDER BY pg_total_relation_size(relid) DESC;
    

    を使用して複数の列のサイズの合計を取得します
    /* Get sum of specific tables */
    SELECT pg_size_pretty(sum(size)) tablesizesum 
           FROM vTableAndSize_1 WHERE mytable in ('table1','table2')
    
    /* Get sum of all tables */
    SELECT pg_size_pretty(sum(size)) tablesizesum 
           FROM vTableAndSize_1
    

    vTableAndSize_1を作成します PostgreSQLで フロントエンドで以下のようなデータベースとクエリ( Rubyに精通していない

    ActiveRecord::Base.connection.execute("SELECT pg_size_pretty(sum(size)) FROM vTableAndSize_1 
    WHERE mytable in ('table1','table2')")
    



    1. SQLツリー階層を注文する

    2. GoogleChartのタイムラインアイテムからリンクを作成する

    3. SQL Server、ML.NET、C#を使用した機械学習モデルの構築

    4. 大きな(14 GB)MySQLダンプファイルを新しいMySQLデータベースにインポートするにはどうすればよいですか?