Как получить список таблиц для конкретной базы данных при подключении с помощью пользователя sysmaster в Informix? - PullRequest
0 голосов
/ 04 февраля 2019

Есть ли запрос для получения списка таблиц и их соответствующего максимального размера и размера для конкретной базы данных при подключении к пользователю sysmaster в Informix?

Я могу получить размер данной таблицы только тогда, когда яЯ подключен к соответствующей базе данных, но это не так.Я хочу получить максимальный размер и размер таблицы, когда я подключен только к пользователю sysmaster.Есть ли другой пользователь / база данных администратора, который имеет такой доступ ко всем данным таблиц из всех баз данных в Informix?

1 Ответ

0 голосов
/ 05 февраля 2019

Попробуйте это:

   select tn.partnum, tn.dbsname, tn.owner, tn.tabname
         , pt.lockid, pt.flags, pt.flags2
         , pt.rowsize, pt.ncols, pt.pagesize
         , dbinfo('utc_to_datetime',pt.created) as created
         , pt.nrows, pt.nptotal, pt.npused, pt.npdata
         , pt.nrows * pt.rowsize as tamanho_bytes
         , (pt.nptotal * pt.pagesize) /1024 as total_kb
         , (pt.npused  * pt.pagesize) /1024 as used_kb
         , (pt.npdata  * pt.pagesize) /1024 as data_kb
         , ((pt.nptotal - pt.npused) * pt.pagesize) /1024 as free_kb
         , pt.nextns as extents
         , pt.ninserts
         , pt.nupdates
         , pt.ndeletes
         , coalesce(pt.serialv,pt.cur_serial8,pt.cur_bigserial)::bigint serial
         , pta_oldvers
         , pta_newvers
    from sysmaster:sysptnhdr pt
    left join sysmaster:systabnames tn on tn.partnum = pt.partnum

Также перечислены пространства TBL, и фрагментированные таблицы показаны отдельно, где вы можете сгруппировать по столбцу lockid (~ partnum).

...