Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.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中获取特定表的每行大小。。?_Postgresql - Fatal编程技术网

如何在postgresql中获取特定表的每行大小。。?

如何在postgresql中获取特定表的每行大小。。?,postgresql,Postgresql,是否可以在postgres中获取特定表的每行大小 例如,一个表有50行,表的总大小是10gb,但我想知道每行的大小,而不是整个表的大小 没有计算行大小的函数,只有计算列值大小的函数。所以你可以这样做: select pg_column_size(column_1) + pg_column_size(column_2) + pg_column_size(column_3) as row_size from the_table; 如果需要的话,可以使用动态SQL和P

是否可以在postgres中获取特定表的每行大小


例如,一个表有50行,表的总大小是10gb,但我想知道每行的大小,而不是整个表的大小

没有计算行大小的函数,只有计算列值大小的函数。所以你可以这样做:

select pg_column_size(column_1) + 
       pg_column_size(column_2) + 
       pg_column_size(column_3) as row_size
from the_table;

如果需要的话,可以使用动态SQL和PL/pgSQL函数实现自动化

用于计算postgress表行的行大小的函数如下所示

SELECT sum(pg_column_size(t.*)) as filesize, count(*) as filerow FROM TABLE_NAME as t;
用您的表名替换
表名

要添加条件
t.COLUMN\u NAME='YOUR\u VALUE'

谢谢,但是我如何才能对表中的所有行运行此查询。您能帮助我提供动态查询吗?@DeepeshGoel:这将对表中的所有行运行,因为它没有
where
clause@a_horse_with_no_name你能分享一下输出的单位吗?是字节吗?@aquaman“显示用于存储任何单个数据值的字节数”Nice one。请注意,
pg\u column\u size(t.*)
可以简化为
pg\u column\u size(t)
。该值将包括行标题“开销”,因此要获得实际数据大小,需要减去24:
pg\u column\u size(t)-24