“缩小”文件与简单地减小初始大小有什么区别?

Pla*_*one 0 sql-server shrink

我是DB Administration 的新手。所以我对 SQL Server Management Studio (SMSS) 或通过 T-SQL 提供的“文件收缩”功能感到困惑。如果我可以简单地降低数据库的初始大小,为什么我需要使用“文件收缩”功能?

在此处输入图片说明

我试图(编辑)减少我的数据库的初始大小,它成功地减少了我的数据库物理文件。如果我使用“收缩”功能,这也将完全相同。

Jos*_*ell 6

“初始大小”标签具有误导性。它实际上是文件的“当前大小”。此外,更改该数字并单击“确定”会SHRINKFILE在幕后进行,因此您正在比较的两件事实际上是......同一件事

这是我的 StackOverflow2010 数据库副本(当前大小为 9,105 MB):

SSMS 中 SO 2010 数据文件中 9105 MB 文件大小的屏幕截图

如果我将其更改为“5”:

SSMS 中 SO 2010 数据文件中文件大小更新为 5 MB 的屏幕截图

然后点击窗口左上角的“脚本”按钮,这是SSMS生成的:

USE [StackOverflow2010]
GO
DBCC SHRINKFILE (N'StackOverflow2010' , 5)
GO
Run Code Online (Sandbox Code Playgroud)

所以你的问题的答案是 SSMS 的这两个功能做同样的事情。

顺便说一句,我强烈建议您在学习时经常使用 SSMS 中的“脚本”按钮。这是了解 SSMS GUI 正在做什么的好方法,并且在您更熟悉 T-SQL 脚本时有助于自动化和克服用户界面的限制。

请注意,您应该警惕收缩数据库文件,请参阅此处了解更多信息:

我需要缩小我的数据库 - 我刚刚释放了很多空间

什么时候可以收缩数据库?