0

我想以编程方式查询已用磁盘空间和剩余空间。如何在 dashDB 中执行此操作?

在 oracle 中,我可以执行以下操作:

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

目前没有针对此的 API 调用。(在此处查找可用的 API 调用:https ://developer.ibm.com/clouddataservices/docs/dashdb/rest-api/ )此时,判断您正在使用或剩余多少空间的唯一方法是通过dashDB 用户界面。我知道,dashDB 团队正在探索更多的可能性。我会再次在这里发帖,如果我了解更多

于 2016-04-18T14:50:46.070 回答
1

一个简单而快速的方法是查看目录,它最终是最新的(当目录表更新为最新的统计数据时,内部会以特定的时间间隔进行统计收集):

select substr(a.tabname,1,30), (a.fpages*PAGESIZE/1024) as size_k, a.card from syscat.tables a, syscat.tablespaces b where 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,

于 2016-04-18T17:14:33.923 回答