You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Sybase ASE中通过系统表获取表行数及表大小(MB)

修改后的查询语句(含表大小字段)

直接在原查询中新增表大小计算逻辑,利用系统表systabstats的页面数结合数据库页面大小转换为MB单位,以下是完整代码:

declare @kernel_mode varchar(15)
if @@trancount = 0
begin
    set chained off
end

set transaction isolation level 1

select @kernel_mode = @@kernelmode

select
ob.name as Table_Name, 
ob.type as Type, 
ta.rowcnt as Row_Count,  
-- 新增表大小计算:转换为MB并保留两位小数
round((ta.pages * @@pagesize)/1024.0/1024.0, 2) as Table_Size_MB,
ob.crdate as Created_Date, 
ta.statmoddate as Last_Modified_Date
into #t
from sysobjects ob, systabstats ta 
where ob.type="U"
and ta.id=ob.id
order by ob.name

if (@kernel_mode = 'process')
    begin
        exec sp_autoformat @fulltabname = #t,
        @selectlist = "Table_Name, Type, Row_Count, Table_Size_MB, Created_Date, Last_Modified_Date",
        @orderby = "order by Table_Name asc"
    end
    else
    begin
        exec sp_autoformat @fulltabname = #t,
        @selectlist = "Table_Name, Type, Row_Count, Table_Size_MB, Created_Date, Last_Modified_Date",
        @orderby = "order by Table_Name asc"
    end

drop table #t

核心修改说明

  • 新增字段Table_Size_MB:通过ta.pages(表占用的页面数)乘以@@pagesize(当前数据库页面字节数),再转换为MB单位,用round函数保留两位小数提升可读性
  • 更新两处sp_autoformat的@selectlist参数,确保格式化输出包含新增的表大小字段

内容的提问来源于stack exchange,提问作者Nani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 09:22:06