问题描述
========
用户使用INSERT语句插入数据但是SQL Server报告说Primary Filegroup已满无法写入数据。用户检查了sp_spaceused发现还有unused空间
问题范围
========
协助检查这个问题并确保Insert语句可以执行完成。
故障排查
========
1.我们通过执行DBCC SHRINKDATABASE和DBCC SHRINKFILE均没有效果
2.经过确认,客户将该数据库设置了“最大文件上限”为2125MB,而当前数据库文件大小为2124MB,已经不能继续增长
3.通过使用sp_spaceused查询,发现还有reserved和unused的空间
提问:既然我有大量unused的空间,为什么不能插入数据?既然我有大量的unused的空间为什么不能收缩数据库?
答:首先我对于sp_spaceused返回的结果进行解释:
需要注意的是:请把sp_spaceused后面的参数改成表,这样才能解释该问题。如果参数是数据库,只是一个数字总和,不能说明问题。
Unallocated space – 这部分空间已经存在在数据库文件中,但是没有给任何表使用,属于公共空间,以后谁都可以使用它。
Reserved – 为该表分配的总空间大小,是后面三者的