我运行了以下脚本来获取数据库中所有表的大小
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缩小数据库并没有帮助。
答案 0 :(得分:1)
MB的总大小和以MB为单位的使用大小的差异可能是什么原因
一次有数据。
有人在考虑到rserves的情况下创建了数据库,因为嘿,扩展是一项代价高昂的操作。
而且 - 哪个文件?如果例如大多数空间都在日志文件中,那么你的总和是无关紧要的 - 那么清理它们可能是一个问题。