java代码获取Sybase数据库空间使用情况

Python016

java代码获取Sybase数据库空间使用情况,第1张

统计数据库空间使用率的SQL: 参考:http://www.dbainfo.net/ase-segment-spaceusage.htm

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封装成连接池形式,就能实现无主键无索引的表的正常访问。