Sql Server 常用运维记录
一、日常运维
1、查询数据库中每个表数据多少行
SELECT A.NAME ,B.ROWS FROM sysobjects A JOIN sysindexes B ON A.id = B.id WHERE A.xtype = 'U' AND B.indid IN(0,1) ORDER BY B.ROWS DESC
2、数据库磁盘占用量:
select name, CAST(convert(float,size) * (8192.0/1024.0)/1024 AS nvarchar)+'MB' AS CP from CDR.dbo.sysfiles
where name = 'CDR'
注:CDR是数据库名称
二、数据库阻塞、死锁
1、查询数据库现在死锁信息
注:需要查询哪个数据库就打开数据库执行以下查询语句
select OBJECT_NAME(resource_associated_entity_id),* from sys.dm_tran_locks
where resource_database_id=db_id()
and resource_type ='OBJECT'
2、根据sys.dm_tran_locks 表中的request_session_id 即sys.dm_exec_requests表中session_id字段,查询死锁的Sql 语句。
select t.text,r.blocking_session_id,r. * from sys.dm_exec_requests r
cross apply sys.dm_exec_sql_te