Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 在一个查询POSTGRES中获取多个表的大小?_Postgresql_Ruby On Rails 4_Ruby 2.0 - Fatal编程技术网

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')")