我正在每月清理保存在 SQL 文件组中的数据,我删除一个月的数据,然后缩小数据文件组以节省空间,注意文件组是基于日期的,每个月都有自己的文件组。
但是这次删除完成后,我注意到文件组中仍有数据,由于下面的查询,行不为零,但我无法确定那里保存的行是什么。收缩不起作用,因为可用空间不是 100%。
所以我的问题是我怎么知道特定文件组中还保存了什么?
```
use dhpo
SELECT
FileGroup = FILEGROUP_NAME(a.data_space_id) ,
TableName = OBJECT_NAME(p.object_id) ,
IndexName = i.name ,
p.rows,
8 * SUM(a.used_pages) AS 'Size(KB)' ,
8 * SUM(a.used_pages) / 1024 AS 'Size(MB)' ,
8 * SUM(a.used_pages) / 1024 / 1024 AS 'Size(GB)'
FROM
sys.allocation_units a
INNER JOIN sys.partitions p
ON a.container_id = CASE WHEN a.type IN ( 1 , 3 ) THEN p.hobt_id
ELSE p.partition_id
END
AND p.object_id > 1024
LEFT JOIN sys.indexes i
ON i.object_id = p.object_id
AND i.index_id = p.index_id
where FILEGROUP_NAME(a.data_space_id)='filegroupName'
GROUP BY
a.data_space_id ,
p.object_id ,
i.object_id ,
p.rows,
i.index_id ,
i.name
ORDER BY
OBJECT_NAME(p.object_id),
FILEGROUP_NAME(a.data_space_id) ,
SUM(a.used_pages) DESC; ```