SQLServer统计采集数据库相关信息

jiong 2020-03-23

在MS Sql Server中可以能过以下的方法查询出磁盘空间的使用情况及各数据库数据文件及日志文件的大小及使用利用率:

1、查询各个磁盘分区的剩余空间:
Exec master.dbo.xp_fixeddrives

2、查询数据库的数据文件及日志文件的相关信息(包括文件组、当前文件大小、文件最大值、文件增长设置、文件逻辑名、文件路径等)
select * from [数据库名].[dbo].[sysfiles]
转换文件大小单位为MB:
select name, convert(float,size) * (8192.0/1024.0)/1024. from [数据库名].dbo.sysfiles

3、查询当前数据库的磁盘使用情况:
Exec sp_spaceused

4、查询数据库服务器各数据库日志文件的大小及利用率
DBCC SQLPERF(LOGSPACE)

--用SQL统计SQLServer表存储空间大小

--遍历库中每个表的记录数及空间占用情况。

CREATE TABLE #tmp (
name varchar(50),	--表名
rows int,	--记录数
reserved varchar(50),	--保留空间
data varchar(50),	--使用空间
index_size varchar(50),	--索引使用空间
unused varchar(50));	--未用空间

INSERT INTO #tmp (name,rows,reserved,data,index_size,unused) EXEC sp_msforeachTable "sp_spaceused ‘?‘"

SELECT t.name,t.[rows],t.reserved,t.data,t.index_size,t.unused 
FROM (	SELECT *,CAST(replace(data,‘ KB‘,‘‘) as INT) as sort from #tmp) t 
ORDER BY t.sort DESC
GO
DROP TABLE #tmp

相关推荐