Sql Server 查询数据库中数据表占用磁盘空间大小,数据库大小,日志压缩

41 篇文章 2 订阅
16 篇文章 0 订阅
--数据库占用大小
EXEC sp_spaceused

sql数据库大小

--查询所有表大小,大小倒序排序
SELECT
TableName = obj.name,
TotalRows = prt.rows,
[DataSize(KB)]=SUM(alloc.data_pages)*8, --这里返回的是数据页个数,1页是8K,所以乘以8
[DataSize(MB)]=SUM(alloc.data_pages)*8/1024.0,
[DataSize(GB)]=SUM(alloc.data_pages)*8/1024.0/1024.0,
[SpaceUsed(KB)] = SUM(alloc.used_pages)*8,--这里返回的是数据页个数,1页是8K,所以乘以8
[SpaceUsed(MB)] = SUM(alloc.used_pages)*8/1024.0,
[SpaceUsed(GB)] = SUM(alloc.used_pages)*8/1024.0/1024.0
FROM sys.objects obj
JOIN sys.indexes idx ON obj.object_id = idx.object_id
JOIN sys.partitions prt ON obj.object_id = prt.object_id
JOIN sys.allocation_units alloc ON alloc.container_id = prt.partition_id
WHERE obj.type = 'U' AND idx.index_id IN (0, 1)
--AND idx.object_id=OBJECT_ID('tablename') 
GROUP BY obj.name, prt.rows
ORDER BY TotalRows DESC

sql数据库表

查询磁盘空间的使用情况
各数据库数据文件大小
数据库日志文件的大小
数据库使用利用率大小

1、查询各个磁盘分区的剩余空间:

Exec master.dbo.xp_fixeddrives;

sql1111
sql1121

2、查询数据库中的所有数据库名:

SELECT Name FROM Master..SysDatabases ORDER BY Name;

sql1131

3、查询某个数据库中所有的表名:

SELECT name FROM SysObjects Where XType=’U’ ORDER BY Name;

SELECT * FROM SysObjects Where XType=’U’ ORDER BY Name;

sql1151

4、查询数据库的数据文件及日志文件的相关信息(包括文件组、当前文件大小、文件最大值、文件增长设置、文件逻辑名、文件路径等)

select * from [数据库名].[dbo].[sysfiles];

sql1161

转换文件大小单位为MB:

select name, convert(float,size) * (8192.0/1024.0)/1024. from [数据库名].dbo.sysfiles;

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

Exec sp_spaceused;
exec sp_spaceused ‘表名’; –取得表占用空間

sql1171

6、查询数据库服务器各数据库日志文件的大小及利用率

DBCC SQLPERF(LOGSPACE);

sql1181

7、收缩数据库日志文件(sql server2005)

backup log [数据库名] with no_log
DBCC SHRINKDATABASE(N’[数据库名], 15, TRUNCATEONLY)

8、收缩数据库日志文件(sql server2008)

USE[master]
 
ALTER DATABASE [数据库名] SET RECOVERY SIMPLE WITH NO_WAIT
 
ALTER DATABASE [数据库名] SET RECOVERY SIMPLE –简单模式
 
USE [数据库名]
 
DBCC SHRINKFILE (N’[数据库名]_Log’ , 11, TRUNCATEONLY)
 
USE[master]
 
ALTER DATABASE [数据库名] SET RECOVERY FULL WITH NO_WAIT
 
ALTER DATABASE [数据库名] SET RECOVERY FULL –还原为完全模式
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值