ITPUB论坛 » Sybase管理与开发 » Sybase高手请进!!!


2008-6-24 11:26 ykjhio
Sybase高手请进!!!

现在开发一个监控系统,sybase15.0,我知道察看表的大小只能用sp_spaceused tablename,并且在命令行中运行,现在我的程序要通过sql语句取出所有的表的大小,我不知道如何写,请高手指点。

2008-6-24 23:03 花好月不圆
分析下 sp_spaceused 的代码就知道了

2008-6-25 11:20 ykjhio
楼上我看了一下那个存储过程的代码,好像实现不了我的需求,你有啥好的办法吗?帮帮我,我是个新手。

2008-6-25 11:32 ykjhio
另外,我google了一下,有人说在sybase IQ中能用sp_iqtablesize 表名就能够得到表的大小,我是sybase新手,sybase IQ是
啥东东,我只装了sybase ase

2008-6-26 13:37 jarjar
IQ是Sybase的用于数据仓库的产品。
ASE是传统的用于OLTP的数据库产品。

sp_spaceused既然能看单表的,从sysobjects中做一个循环,不就能看所有表的?

select name from sysobjects where type = "U"

2008-6-26 14:19 花好月不圆
SELECT USER_NAME(O.uid),
       O.name,
       I.name,
       I.indid,
       STR(ROUND((RESERVED_PGS(I.id,doampg)+RESERVED_PGS(I.id,ioampg))*(2048/1024576.0),2),9,2)as Reserved,
       STR(ROUND(CONVERT(numeric(20,9),DATA_PGS(I.id,doampg))*(2048/1024576.0),2),9,2)as Data,
       STR(ROUND(CONVERT(numeric(20,9),DATA_PGS(I.id,ioampg))*(2048/1024576.0),2),9,2) as Index_1 ,
       STR(ROUND(CONVERT(numeric(20,9),((RESERVED_PGS(I.id,doampg)+RESERVED_PGS(I.id,ioampg))-(DATA_PGS(I.id,doampg)+DATA_PGS(I.id,ioampg))))*(2048/1024576.0),2),9,2) as Unused ,
       I.status,I.status2
  FROM syssegments S,sysindexes I,sysobjects O
  WHERE S.name='default' AND I.id!=8 AND
        I.segment=S.segment AND
        I.id=O.id
  ORDER BY I.indid

页: [1]
查看完整版本: Sybase高手请进!!!


Powered by ITPUB论坛