统计ASE数据库空间剩余率

统计Sybase ASE数据库的数据段和日志段的剩余空间以及剩余率。以下SQL在ASE12.5.1及以上版本通过测试。

 

select convert(char(16),db_name(data_segment.dbid)) DBName
,str(round(total_data_pages / ((1024.0 * 1024) / @@maxpagesize),2),10,2) "Total Data(MB)"
,str(round(free_data_pages / ((1024.0 * 1024) / @@maxpagesize),2),10,2) "Free Data(MB)"
,str(round(total_log_pages / ((1024.0 * 1024) / @@maxpagesize),2),10,2) "Total Log(MB)"
,str(round(free_log_pages / ((1024.0 * 1024) / @@maxpagesize),2),10,2) "Free Log(MB)"
,str( round(100.0 * free_data_pages / total_data_pages ,2),10,2) "Free_Data%"
,str( round(100.0 * free_log_pages / total_log_pages,2),10,2) "Free_Log%"
from
(select dbid,sum(size) total_log_pages,lct_admin("logsegment_freepages", dbid ) free_log_pages
  from master.dbo.sysusages
    where segmap & 4 = 4
    group by dbid
) log_segment
,
(select dbid,sum(size) total_data_pages ,sum(curunreservedpgs(dbid, lstart, unreservedpgs)) free_data_pages
  from master.dbo.sysusages
    where segmap <> 4
    group by dbid
) data_segment
where data_segment.dbid = log_segment.dbid
  --and data_segment.dbid > 3 and data_segment.dbid < 31513
order by data_segment.dbid
go

 

  • 本文链接地址:http://www.sybrepair.com/ase-segment-spaceusage.htm
  • 本文为dbainfo个人原创,请在尊重作者劳动成果的前提下进行转载;
  • 转载务必注明原始出处 : Sybase数据库技术,数据库恢复专家
  • 对《统计ASE数据库空间剩余率》有何疑问或见解,请在本文下方发表;
  • 对网站还有其他问题或建议,请提交在留言板,谢谢!
    1. sybman
      2012-11-20 15:53:32

      Hi, 大牛, data_segment 和 log_segment反了吧, segmap 的4 表示 log only, hehe

      • dbainfo
        2012-11-20 16:30:50

        恩。是表的别名写反了。已经修改过来了。
        这段SQL在巡检的时候用过很多遍。

    :wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)