【发布时间】:2008-09-05 18:06:46
【问题描述】:
我的 ms sql 数据库变得非常大。经过检查,我发现某些表中有一堆未使用的空间。我不做很多物理删除,所以我不认为它只是删除了记录。 DBCC SHRINK 不会使文件变小。但是,如果我将表转储到一个新的空数据库,则大小会下降大约 80%。而不是我在当前数据库的这个表中的 7gb,我最终在新数据库中得到了大约 1.5gb。好像 sql server 分配了太多内存。有人遇到过这个吗?我希望能够通过删除未使用的分配空间来缩小表,而不必创建一个全新的数据库。
附加信息:
使用完全恢复模式。我会尝试重建索引,我想已经有一段时间了。 ldf 每天都会使用一些截断它们的古怪存储过程来缩小。
【问题讨论】:
-
你试过重建索引吗?
-
看看这篇知识库文章,看看它是否适用:support.microsoft.com/kb/913399
-
这有关系吗?知识库文章 924027 - SQL Server significantly increases the unused space for some tables
-
如果您对 LDF 所做的只是截断它们,那么使用完全恢复模型绝对没有任何意义!使它们缩小的正确方法是备份日志文件,届时它们将自动缩小。迫切需要了解日志链和正确备份策略的人介入并帮助您正确处理。任何不足都会让您面临丢失数据的可怕风险。
标签: sql-server