
1、首先点击桌面上的SQL server数据库。
2、然后打开SQL server数据库,输入登录名,密码,点击连接。
3、接着点击左上角新建查询,选择master数据库。
4、先查看数据库被锁的表。
5、接着输入解锁进程,然后执行就可以进行数据库解锁了。
Sybase只能用sp_helpdb或者sp_spaceuesd类似的系统存储过程,考虑了一下,看系统表的参考吧。所以写出如下语句:
use mastergo
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_blockedfrom master..sysprocesses p,master..sysprocesses p1
where p.blocked>0 and p.blocked *=p1.spid
可以根据time_blocked的大小判断是阻塞还是死锁,如果时间很短就结束了,说明是阻塞,如果很长,就应该是死锁了。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)