可以使用哪些语法/表来确定 Netezza 表的大小 (Gbs)?我通过 UNIX SAS(ODBC 或 libname 引擎)访问。我假设有一个视图可以提供此信息?
问问题
6561 次
3 回答
3
所以你对两个系统视图_v_obj_relation_xdb 和_v_sys_object_dslice_info 感兴趣。第一个 (_v_obj_relation_xdb) 包含表信息(名称、类型等),第二个 (_v_sys_object_dslice_info) 包含每个磁盘的大小信息。您可能想看看这两个表,以了解您真正想要的是什么,但简单的查询是:
select objname, sum(used_bytes) size_in_bytes
from _V_OBJ_RELATION_XDB
join _V_SYS_OBJECT_DSLICE_INFO on (objid = tblid)
where objname = 'UPPERCASE_TABLE_NAME'
group by objname
这将返回表的大小(以字节为单位),我将把转换为 GB 作为练习留给读者。那里还有一些其他有趣的领域,因此您可能想查看这些视图。
于 2011-01-22T00:09:59.207 回答
1
您也可以使用 (_v_sys_object_storage_size )
select b.objid
,b.database as db
,lower(b.objname) as tbl_nm
,lower(b.owner) as owner
,b.objtype
,d.used_bytes/pow(1024,3) as used_gb
,d.skew
,cast(b.createdate as timestamp) as createdate_ts
,cast(b.objmodified as timestamp) as objmodified_ts
from _v_obj_relation_xdb b inner join
_v_sys_object_storage_size d
on b.objid=d.tblid
and lower(b.objname) = 'table name'
于 2013-11-21T20:24:13.283 回答
0
磁盘大小 (used_bytes) 表示压缩数据,包括表中任何已删除行的存储空间。
表行计数统计(reltuples)通常非常准确,但它只是一个统计,并不能保证匹配“选择计数(*)”表行计数。
您可以通过目录查询获取此信息
select tablename, reltuples, used_bytes from _v_table_only_storage_stat where tablename = ^FOOBAR^;
于 2014-01-16T16:41:56.573 回答