我的 SQL Server 数据库已达到 10 GB 限制。
当我使用时EXEC sp_spaceused
,我得到
预订的 | 数据 | 索引大小 | 没用过 |
---|---|---|---|
10483208 KB | 10352336 KB | 90264 KB | 40608 KB |
但是,当我执行此查询时:
SELECT
SUM(a.total_pages) * 8 AS TotalSpaceKB,
SUM(a.used_pages) * 8 AS UsedSpaceKB,
(SUM(a.total_pages) - SUM(a.used_pages)) * 8 AS UnusedSpaceKB
FROM
sys.tables t
JOIN
sys.indexes i ON t.OBJECT_ID = i.object_id
JOIN
sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id
JOIN
sys.allocation_units a ON p.partition_id = a.container_id
LEFT JOIN
sys.schemas s ON t.schema_id = s.schema_id
我发现这些表的总和只有 450 MB。
我在执行某些过程时开始出现此错误:
System.Data.SqlClient.SqlException(0x80131904):无法从数据库“***”为对象“sys.change_tracking_517680992”.“sys_change_cidx”分配空间,因为文件组“PRIMARY”已满。删除不必要的文件、从文件组中删除对象、向文件组添加其他文件或为文件组中的现有文件设置自动增长选项以创建磁盘空间。
所以我猜是日志或跟踪文件占用了剩余空间?我可以以某种方式删除它们吗?