如何在Redshift表中找出每列的大小?

The*_*heo 3 sql amazon-redshift

在Redshift中尝试不同的压缩设置时,了解每列的大小非常有用.我知道如何获取表的大小,但我想知道该表中每个列的大小.

小智 8

此查询将为您提供每列的大小(MB).它的作用是计算数据块的数量,每个块使用1 MB,按表和列分组.

SELECT
  TRIM(name) as table_name,
  TRIM(pg_attribute.attname) AS column_name,
  COUNT(1) AS size
FROM
  svv_diskusage JOIN pg_attribute ON
    svv_diskusage.col = pg_attribute.attnum-1 AND
    svv_diskusage.tbl = pg_attribute.attrelid
GROUP BY 1, 2
Run Code Online (Sandbox Code Playgroud)

您可以在此处阅读有关查询中涉及的两个表的更多信息: SVV_DISKUSAGEpg_attribute.