首页 > 解决方案 > 如何在 Sybase (SAP ASE 16) 中计算数据库设备大小

问题描述

我正在尝试通过 Sybase (SAP ASE 16) MDA/系统表计算数据库设备大小(使用中的总 mb、总保留 mb 和剩余 mb 百分比)。目前,我可以成功计算使用中的总 mb(我已通过 sp_displaydevice 验证),但我无法计算每个数据库设备分配的总 mb。

我的查询:

select
    logical_name = d.name,
    physical_name = d.phyname,
    d.vdevno as vdevno,
    size = (d.high - d.low + 1) * 2.0 / 1024.0,
    reserved = isnull(sum(u.size) * 2.0 / 1024.0, 0),
    left = isnull(sum(u.size) * 2.0 / 1024.0, 0) - (d.high - d.low + 1) * 2.0 / 1024.0
from
    master.dbo.sysdevices d,
    master.dbo.sysusages u
where
    d.status & 2 = 2
    and u.vstart / power(2, 24) = * d.low / power(2, 24)
group by
    substring(d.name, 1, 12),
    substring(d.phyname, 1, 17),
    d.low / power(2, 24),
    (d.high - d.low + 1) * 2 / 1024.0
order by
    vdevno

这是修改后的版本:http ://www.rocket99.com/techref/sybase8707.html

我对设备的理解有误吗?例如,所有数据库是否共享给定 sybase 实例上的磁盘空间?这就是为什么他们的“reserved_mb”都返回相同的值?任何帮助表示赞赏。

谢谢。

旁注:此查询的结果将被插入到表中以进行进一步操作。

标签: sqldatabasetsqlstored-proceduressap-ase

解决方案


推荐阅读