2011-01-20 11 views
2

Netezzaテーブルのサイズ(Gbs)を決定するために使用できる構文/テーブルは何ですか? UNIX SAS(ODBCまたはlibnameエンジンのいずれか)を使用してアクセスしています。私はこの情報を与えるビューがあると仮定しますか?UNIXを使用したNetezzaテーブルのサイズの確認SAS

答えて

3

したがって、_v_obj_relation_xdbと_v_sys_object_dslice_infoの2つのシステムビューに興味があります。最初のフィールド(_v_obj_relation_xdb)にはテーブル情報(名前、タイプなど)が格納され、2番目のフィールド(_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 count(*)"テーブルの行数に一致するとは限りません。

カタログ・クエリを経由して、この情報を得ることができ

select tablename, reltuples, used_bytes from _v_table_only_storage_stat where tablename = ^FOOBAR^; 
関連する問題