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

我正在尝试检索我的 sybase DB 的 DB 大小。但是在任何地方我都得到了这个命令来查看 DB 大小,“sp_spaceused”。但是这个命令显示了所有信息以及 DB 大小。下面是输出,

1> sp_spaceused
2> go
database_name database_size
------------- -------------
mydb         310.0 MB

(1 row affected)
reserved data    index_size unused
-------- ------- ---------- -------
5690 KB  1036 KB 2986 KB    1482 KB
(return status = 0)

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

或者,

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

提前致谢。

stack overflow How to get exact Sybase DB size in a integer or varchar
原文答案

答案:

作者头像

You have to calculate both data size and log size. In the query; first part is data part sum and second part is log size sum.

But, please don't forget I assume that your server is 2k page setup.

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"