首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >释放sql server上的磁盘空间

释放sql server上的磁盘空间
EN

Database Administration用户
提问于 2014-03-30 05:50:47
回答 2查看 16.9K关注 0票数 2

假设我有一个具有磁盘空间的sql数据库服务器,如下所示:

D驱动器:10 MDF (用于MDF文件)

E驱动器:10 the (用于LDF文件)

服务器上只有一个数据库,包含以下详细信息:

占用磁盘空间: 9GB MDf文件和9GB LDF文件。

10个表,只有一个架构(dbo),任何表上都没有索引。

我所做的:我删除了数据库中的所有表,但是驱动器空间保持不变(9GB),在这两个驱动器上只剩下1GB。

我将如何收回D驱动器上的空间,在不缩小mdf和不删除数据库的情况下实现这一点的最佳方法是什么?显然没有添加任何磁盘空间。

缩小日志文件将释放空间,但我更关心的是获得空间回到D驱动器,其中包含MDF文件。

EN

回答 2

Database Administration用户

回答已采纳

发布于 2014-03-30 12:49:54

如果您删除了所有的表,就可以删除数据库并重新创建它。它将使用model数据库定义的默认大小和增长率创建。这些可能并不理想(我不认为缺省值在大多数情况下特别有用),但您可以更改它们。

除非您在这个数据库上设置了很多东西(比如Service、大量用户等等),否则我认为这比养成成长/收缩、增长/收缩的习惯要简单得多。您应该将数据库放在一个有足够空间容纳将要生成的数据的驱动器上,而不必一直缩小。萎缩和增长都是代价高昂的事件,尤其是在缓慢的I/O上。

此外,为了防止日志增长到9 GB (对于您描述的数据来说这似乎很荒谬),您应该完全恢复,并且需要执行更频繁的备份和日志备份,或者应该切换到简单的恢复。这里有更多的细节--很长,但是请把它全读了

票数 2
EN

Database Administration用户

发布于 2014-03-30 11:34:21

在SQL server中,数据和日志文件只会自动增长。如果删除了大量数据,文件中将有空空间,但是SQL server不会自动缩小文件,因为它需要添加更多的数据,而且文件的增长成本很高。

收缩文件通常也不利于索引和统计数据,但是由于您删除了所有表,所以这并不重要。可以使用命令收缩文件。我正在打电话,所以我建议你在微软知识库上查找语法。

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

https://dba.stackexchange.com/questions/62074

复制
相关文章

相似问题

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