ITPub博客

首页 > 数据库 > 数据库开发技术 > sybase空间监控和死锁检测语句

sybase空间监控和死锁检测语句

原创 数据库开发技术 作者:wangzh3 时间:2006-09-27 13:18:45 0 删除 编辑

一直习惯于oracle的空间查看使用数据字典,锁检测可以用到oem工具或者其他工具里面看session。

sybase还不是很习惯。sybase提供了系统存储过程来看空间的使用,不过很难按照自己的要求定制,所以就去看对应系统存储过程的实现,然后查sybase的系统表参考,相对来说,还好,系统存储过程的实现没有加密,所以比较容易看明白。

[@more@]

对于空间监控,oracle提供了表,可以直接用。对sybase不熟悉,只能用sp_helpdb或者sp_spaceuesd类似的系统存储过程,考虑了一下,看系统表的参考吧。所以写出如下语句:

use master

go

select b.name,sum(a.size) *2 ,sum(a.unreservedpgs) *2 unreservedpgs from sysusages a,sysdatabases b

where a.dbid=b.dbid

group by b.name

go

测试,ok。

说明:*2表示页的大小是2k,得到的结果也是k,结果集中第一个字段是数据库的名称,第二个是该数据库分配的空间,第三个是该数据库尚未使用的空间。根据实际需要扩展该sql即可,可以得到某个表空间的使用率超过75%之类的告警。

对于死锁的监控,很麻烦,参考sp_sysmon以及sp_who和sp_lock的实现,写了语句如下:

select p.spid,suser_name(p.suid),p.blocked,suser_name(p1.suid),db_name(p.dbid),p.status,p.program_name,getdate(),p.time_blocked

from master..sysprocesses p,master..sysprocesses p1

where p.blocked>0 and p.blocked *=p1.spid

可以根据time_blocked的大小判断是阻塞还是死锁,如果时间很短就结束了,说明是阻塞,如果很长,就应该是死锁了。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/47869/viewspace-867560/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: The Myth Of Sisyphus
下一篇: 水煮鱼的做法
请登录后发表评论 登录
全部评论
  • 博文量
    301
  • 访问量
    10875979