我有ms sql数据库,它们变得非常大.经过检查,我发现某些表中有一堆未使用的空间.我没有做很多物理删除,所以我不认为它只是删除了记录.DBCC SHRINK不会使文件变小.但是,如果我将表转储到一个新的空数据库,则大小会下降大约80%.而不是我在当前数据库中的这个表中的7gb,我最终在新数据库中大约1.5gb.它好像sql server分配了太多的内存.以前遇到过这个人吗?我希望能够通过删除未使用的已分配空间来缩小表,而无需创建全新的数据库.
附加信息:
使用完全恢复模型.我会尝试重建索引,我想它已经有一段时间了.ldf每天都会使用一些古怪的存储过程来缩小它们.
在选项中,您可以指定要增长的程度。默认情况下,我相信它是 10%,因此给定一个 200MB 的数据库,当您填充最后一页时,它将分配另外 20MB 的页面空间。如果是 7GB,它将分配 700MB。
我不知道创建数据库后可以在哪里修改它,但我知道创建数据库时它有它。谷歌一下,很可能会告诉你答案。
注意:我的答案不是如何修复它,而是如何防止/解释为什么您可能会看到所有这些未分配的空间。