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
关于设备文件使用情况:
参考:
ASE15.x之前版本中查看设备剩余空间以及设备上数据库分配信息的存储过程
http://www.dbainfo.net/get-free-space-of-device-and-database-allocation-prior-to-ase12-5.htm
对Sybase数据库来说,设置主键不是必须的。Sybase官方认为,对其任意一个表,都必须设置"table_name" 的唯一索引或主键,即是说索引和主键必须二者有其一,都有更好。
索引建立方式如:
/*创建主索引:销售表*/
CREATE UNIQUE INDEX idx_XSM_TS ON TABLE_XS(XSM,TS)
go
按Jconn3提供的类来看,索引和主键也并非必须的。通过外加一些处理逻辑,最好是和jconn3封装成连接池形式,就能实现无主键无索引的表的正常访问。