0

使用されているディスク容量と残りの容量をプログラムで照会したいと思います。これを dashDB で行うにはどうすればよいですか?

オラクルでは、次のようなことを実行できます。

column dummy noprint
column  pct_used format 999.9               heading "%|Used"
column  name    format a16                  heading "Tablespace Name"
column  bytes   format 9,999,999,999,999    heading "Total Bytes"
column  used    format 99,999,999,999       heading "Used"
column  free    format 999,999,999,999      heading "Free"
break   on report
compute sum of bytes on report
compute sum of free on report
compute sum of used on report

set linesize 132
set termout off
select a.tablespace_name                                              name,
       b.tablespace_name                                              dummy,
       sum(b.bytes)/count( distinct a.file_id||'.'||a.block_id )      bytes,
       sum(b.bytes)/count( distinct a.file_id||'.'||a.block_id ) -
       sum(a.bytes)/count( distinct b.file_id )                       used,
       sum(a.bytes)/count( distinct b.file_id )                       free,
       100 * ( (sum(b.bytes)/count( distinct a.file_id||'.'||a.block_id )) -
               (sum(a.bytes)/count( distinct b.file_id ) )) /
       (sum(b.bytes)/count( distinct a.file_id||'.'||a.block_id ))    pct_used
from sys.dba_free_space a, sys.dba_data_files b
where a.tablespace_name = b.tablespace_name
group by a.tablespace_name, b.tablespace_name;

同様のことをdashDBで行うにはどうすればよいですか?

4

2 に答える 2

1

簡単で迅速な方法は、最終的には最新のカタログを調べることです (カタログ テーブルが最新の統計で更新されると、特定の間隔で内部的に統計収集が行われます)。

a.TBSPACEID=b.TBSPACEID ;

より正確ですがコストのかかる方法は次のとおりです。

SELECT TABSCHEMA, TABNAME, SUM(DATA_OBJECT_P_SIZE) + SUM(INDEX_OBJECT_P_SIZE)+ SUM(LONG_OBJECT_P_SIZE) + SUM(LOB_OBJECT_P_SIZE)+ SUM(XML_OBJECT_P_SIZE) FROM SYSIBMADM.ADMINTABINFO where tabschema='' and tabname='' group by tabschema,tabname;

于 2016-04-18T17:14:33.923 に答える