欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Sqlserver 数据库文件大小和剩余空间

程序员文章站 2024-03-25 21:31:46
...

原文链接:
Sqlserver 数据库文件大小和剩余空间

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

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

2、查询数据库中的所有数据库名: 
SELECT Name FROM Master..SysDatabases ORDER BY Name;

3、查询某个数据库中所有的表名: 
SELECT name FROM SysObjects Where XType=’U’ ORDER BY Name;

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

5、查询当前数据库的磁盘使用情况: 
Exec sp_spaceused; 
exec sp_spaceused ‘表名’; –取得表占用空間

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

7、收缩数据库日志文件(sql server2005) 
backup log [数据库名] with no_log 
DBCC SHRINKDATABASE(N’[数据库名], 15, TRUNCATEONLY)

8、收缩数据库日志文件(sql server2008) 
USE[master] 
GO 
ALTER DATABASE [数据库名] SET RECOVERY SIMPLE WITH NO_WAIT 
GO 
ALTER DATABASE [数据库名] SET RECOVERY SIMPLE –简单模式 
GO 
USE [数据库名] 
GO 
DBCC SHRINKFILE (N’[数据库名]_Log’ , 11, TRUNCATEONLY) 
GO 
USE[master] 
GO 
ALTER DATABASE [数据库名] SET RECOVERY FULL WITH NO_WAIT 
GO 
ALTER DATABASE [数据库名] SET RECOVERY FULL –还原为完全模式 
GO