sql server 数据库空间使用情况

数据库的大小是我们经常需要了解的,提前知道目前数据库使用磁盘的比例,而且定期搜集这些信息,还能了解数据库一段时间的数据增量,更为常用的是在做数据迁移和升级时,方便规划新服务器磁盘容量。这里介绍几种统计数据库大小的方法:

1、查看数据库文件路径

select name,dbid,filename from master.dbo.sysdatabases order by filename;

2、查看数据库文件 ,日志文件路径大小等信息

select name,physical_name,type_desc,convert (float,size)* (8192.0/1024)/1024.0 AS sizeMB ,state_desc ,convert(float,max_size)* (8192.0/1024)/1024.0 AS max_sizeMB ,growth from sys.database_files

 3、查看具体某个库的

use dbname;

select * from [sysfiles];

4、使用 sp_spaceused查看数据库空间

declare @dbname varchar(100)

declare db_cur cursor for

select name from sys.sysdatabases where dbid>4 and name<>'distribution'

open db_cur

fetch next from db_cur  into @dbname

while @@FETCH_STATUS=0

 begin

  print('use '+QUOTENAME(@dbname))

  Print('go')

  Print('sp_spaceused')

  fetch next from db_cur  into @dbname

 end

close db_cur

deallocate db_cur

我们做了初步的数据筛选,去掉了系统数据库和分发数据库,此方法会生成以下脚本


use [master]

go

sp_spaceused

5、系统库之外的其它库文件大小

SELECT
DB_NAME(F.database_id) AS [数据库],
F.physical_name AS [物理文件名],
'增长方式' = (case is_percent_growth  & 1 when 1 then
		convert(nvarchar(15), growth) + N'%'
		else
		convert(nvarchar(15), convert (bigint, growth) * 8/1024) + N' MB' end),
F.max_size AS [最大大小],
F.type_desc AS [文件类型],
F.name AS [逻辑名称],
F.size*8/1024 AS [文件大小(MB)]
FROM sys.master_files F
INNER JOIN sys.databases D
ON D.database_id=F.database_id
INNER JOIN sys.database_mirroring dm
ON D.database_id=dm.database_id
AND(dm.mirroring_guid IS NULL OR dm.mirroring_role=1)
WHERE F.database_id>4
ORDER BY [数据库]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

享耳0115

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值