减少SQL Server数据库大小

时间:2011-12-05 09:01:11

标签: sql-server

我运行了以下脚本来获取数据库中所有表的大小

SELECT   t.NAME AS TableName,  i.name AS indexName,  SUM(p.rows) AS RowCounts,  
SUM(a.total_pages) AS TotalPages,   SUM(a.used_pages) AS UsedPages,   SUM(a.data_pages)
AS DataPages,  
(SUM(a.total_pages) * 8) / 1024 AS TotalSpaceMB,   (SUM(a.used_pages) * 8) / 1024 AS
UsedSpaceMB, (SUM(a.data_pages) * 8) / 1024 AS DataSpaceMB
FROM   sys.tables t INNER JOIN    sys.indexes i ON t.OBJECT_ID = i.object_id 
INNER JOIN   sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id 
INNER JOIN   sys.allocation_units a ON p.partition_id = a.container_id 
WHERE  t.NAME NOT LIKE 'dt%' 
AND  i.OBJECT_ID > 255 
AND    i.index_id <= 1 
GROUP BY   t.NAME, i.object_id, i.index_id, i.name  ORDER BY   OBJECT_NAME(i.object_id) 

许多表显示TotalSpaceMB和UsedSpaceMB列有很大差异。 TotalSpaceMB的总数= 7.6GB,而UsedSpaceMB的总数= 1.1 GB。
例如:TableName:BOMS

RowCount:72747
总页数:183960
二手页数:23999
数据页面:21752
TotalSpaceMB:1437
UsedSpaceMB:187
DataSpace MB:169

我的数据也不是那么大,以保证&gt;的大小。 7GB。

MB的总大小和MB中使用的大小之间存在如此大的差异的原因是什么?是否有一种方法可以减少MB的总大小?

使用SQL Management Studio缩小数据库并没有帮助。

1 个答案:

答案 0 :(得分:1)

  

MB的总大小和以MB为单位的使用大小的差异可能是什么原因

  • 一次有数据。

  • 有人在考虑到rserves的情况下创建了数据库,因为嘿,扩展是一项代价高昂的操作。

而且 - 哪个文件?如果例如大多数空间都在日志文件中,那么你的总和是无关紧要的 - 那么清理它们可能是一个问题。