Определение размера таблицы Netezza с помощью UNIX SAS - PullRequest
2 голосов
/ 20 января 2011

Какой синтаксис / таблицы можно использовать для определения размера (Гбс) таблицы Netezza?Я получаю доступ через UNIX SAS (ODBC или libname).Я предполагаю, что есть представление, которое даст эту информацию?

Ответы [ 3 ]

3 голосов
/ 22 января 2011

Итак, вас интересуют два системных представления: _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

Возвращает размер таблицы в байтах.и я оставлю преобразование в ГБ в качестве упражнения для читателя.Там есть и другие интересные поля, поэтому вы можете проверить эти виды.

1 голос
/ 22 ноября 2013

Вы также можете использовать (_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 голосов
/ 16 января 2014

Размер на диске (used_bytes) представляет сжатые данные и включает в себя хранилище для любых удаленных строк в таблице.

Статистика количества строк в таблице (reltuples), как правило, очень точная, но это просто статистика, а негарантированно соответствует таблице «select count (*)» rowcount.

Вы можете получить эту информацию через запрос каталога

select tablename, reltuples, used_bytes from _v_table_only_storage_stat where tablename = ^FOOBAR^;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...