如何在整数或varchar中获取准确的Sybase DB大小

时间:2015-08-25 14:24:25

标签: sybase

我正在尝试检索我的sybase DB的数据库大小。但是我得到这个命令以查看数据库大小“ sp_spaceused ”。但此命令显示所有信息以及数据库大小。 以下是输出

INSERT INTO WOS_DM_KEYWORD
    (
      CD_UID
    , CD_KEYWORD
    , FLAG)
select RecUid.CD_UID
 , Abst2.*
from testtable2 t
cross join  xmltable(xmlnamespaces(default 'http://scientific.thomsonreuters.com/schema/wok5.4/public/FullRecord'),
'records/REC'
passing t.xml_file 
columns     CD_UID varchar2(200) path 'UID',
          Abstract xmltype path 'static_data/fullrecord_metadata/keywords'
        ) RecUid


cross join xmltable(xmlnamespaces(default 'http://scientific.thomsonreuters.com    /schema/wok5.4/public/FullRecord'),
'keywords/keyword'
passing RecUid.Abstract

columns     CD_KEYWORD varchar2(200) path '.',
            FLAG '1'
        )  Abst2
;

这里mydb是我正在使用的数据库名称。但是我想要一个sybase查询或命令,它只会返回我可以放在varchar或整数中的数据库大小,并通过我的.sql数据库脚本使用。

,或者

如何优化我的sybase命令输出(如unix中的grep)并仅过滤掉所需的输出。

提前致谢。

1 个答案:

答案 0 :(得分:1)

您必须计算数据大小和日志大小。在查询中;第一部分是数据部分和,第二部分是对数大小和。

但是,请不要忘记我假设您的服务器设置为2k页。

select convert(varchar(100), (
     select  sum(size) *2 /1024
           from master.dbo.sysusages u
          where u.segmap != 4
            and u.dbid = db_id('MYDBNAME')
        ) + (
     select sum(size) *2 /1024
           from master.dbo.sysusages u
          where u.segmap = 4
            and u.dbid = db_id('MYDBNAME')
      )) as "db_size"