首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL Server未使用但已分配的表空间

SQL Server未使用但已分配的表空间
EN

Stack Overflow用户
提问于 2008-09-05 18:06:47
回答 6查看 17.1K关注 0票数 6

我有一个变得非常大的ms sql数据库。经过检查,我发现在某些表中有一堆未使用的空间。我不做太多的物理删除,所以我不认为它只是删除了记录。DBCC收缩不会使文件变小。但是,如果我将表转储到一个新的空数据库中,大小下降了大约80%。在fresh数据库中,我最终得到了大约1.5 7gb,而不是当前数据库中该表中的7 7gb。这就好像sql server分配了太多的内存。以前有人遇到过这种情况吗?我希望能够通过删除未使用的已分配空间来收缩表,而不必创建一个全新的数据库。

其他信息:

使用了完整恢复模式。我会试着重建索引,我想已经有一段时间了。ldf每天都会被缩小,使用一些奇怪的存储过程来截断它们。

EN

回答 6

Stack Overflow用户

发布于 2008-09-05 18:18:03

我发现如果你不小心备份你的转换日志文件( LDF),你会得到类似这样的行为。我再怎么强调良好的备份“卫生”也不为过。它不仅可以在出现问题时节省您的时间,而且我还可以帮助维护一个很好的、严密的数据库。

票数 2
EN

Stack Overflow用户

发布于 2008-09-05 18:23:47

我不会做太多物理删除

表的更新情况如何,碎片级别是多少。运行DBCC SHOWCONTIG,如果索引高度碎片化,则重新构建索引。之后,使用TRUNCATE_ONLY命令执行备份日志,然后执行收缩命令

票数 1
EN

Stack Overflow用户

发布于 2008-09-05 18:11:55

在选项中,您可以指定要增长多少。默认情况下,我认为它是10%,所以假设有一个200MB的数据库,当你填满最后一个页面时,它会再分配20MB的页面空间。在7 7GB时,它将分配700MB。

我不知道在创建数据库后可以在哪里修改它,但我知道当您创建数据库时它就有了。谷歌上的一些工作很可能会为你揭开答案。

注意:我的答案不是如何修复它,而是如何防止/解释为什么您可能会看到所有这些未分配的空间。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档