Netezza 테이블의 크기 (Gbs)를 결정하는 데 사용할 수있는 구문/테이블은 무엇입니까? UNIX SAS (ODBC 또는 libname 엔진)를 통해 액세스하고 있습니다. 이 정보를 줄보기가 있다고 가정합니까?UNIX를 사용하여 Netezza 테이블 크기 찾기 SAS
2
A
답변
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로 전환을 맡깁니다. 거기에 몇 가지 다른 흥미로운 분야가 있으므로 당신은 그 전망을 확인해 볼 수 있습니다.
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'
0
디스크 (used_bytes)의 크기는 압축 된 데이터를 나타내고, 표에서 삭제 된 행에 대한 스토리지를 포함한다.
테이블 행 계수 통계 (reltuples)는 일반적으로 매우 정확하지만 통계 일 뿐이며 "선택 개수 (*)"테이블 행 개수와 일치하지는 않습니다.
당신은 카탈로그 쿼리를 통해이 정보를 얻을 수 있습니다
select tablename, reltuples, used_bytes from _v_table_only_storage_stat where tablename = ^FOOBAR^;