Postgresql 在一个查询POSTGRES中获取多个表的大小?
: 此查询:Postgresql 在一个查询POSTGRES中获取多个表的大小?,postgresql,ruby-on-rails-4,ruby-2.0,Postgresql,Ruby On Rails 4,Ruby 2.0,: 此查询: query = "CREATE TEMPORARY TABLE query_out AS SELECT * FROM users WHERE is_admin = false" ActiveRecord::Base.connection.execute(query) 将生成一个临时表并插入此查询中的所有记录,即 SELECT * FROM users WHERE is_admin = false 然后 我只有一张桌子那么大 我需要做什么才能在一个查询中显示多个表的大小 任何帮助
query = "CREATE TEMPORARY TABLE query_out AS SELECT * FROM users WHERE is_admin = false"
ActiveRecord::Base.connection.execute(query)
将生成一个临时表并插入此查询中的所有记录,即
SELECT * FROM users WHERE is_admin = false
然后
我只有一张桌子那么大
我需要做什么才能在一个查询中显示多个表的大小
任何帮助都将不胜感激
谢谢
它将给出临时表的大小。下面的select查询将返回所有表及其大小
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')
依照 并使用
/* 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
在
PostgreSQL
数据库中创建vTableAndSize\u 1
,并在前端进行如下查询(我不熟悉Ruby
)
只有特定数量的表或者什么???猜测:
选择pg_size_pretty(pg_relationship_size('table1'))size_table1,pg_size_pretty(pg_relationship_size('table2'))size_table2
像这样你可以尝试有特定数量的表谢谢,它给出了不同列中的表的大小。我需要所有桌子的尺寸总和?谢谢,但它很复杂。我得到了所有表格的大小,但列不同。请建议我一个简单的查询,这样我就可以总结不同列的大小。
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
ActiveRecord::Base.connection.execute("SELECT pg_size_pretty(sum(size)) FROM vTableAndSize_1
WHERE mytable in ('table1','table2')")