首页 > 解决方案 > 为什么从 Query 和 SSMS 备份时数据库备份大小不同?

问题描述

我对使用 SSMS 和 Query 备份的文件大小感到困惑。
如果我在其默认文件夹中从 SSMS 创建一个文件,例如“C:\Program Files\Microsoft SQL Server\MSSQL14.NAMEDINSTANCE\MSSQL\Backup”,则输出文件说 Db1.bak 约为 198292 KB文件大小仅为6256 KB
"backup database Db1 to disk='D:\Db1.bak'

有时其他数据库说 Db2 提供相同的文件大小,即6256 KB(Db1 和 Db2 具有相同(相同)的模式,只是其中的数据不同。)
使用 SSMS 备份提供33608 KB,这似乎令人满意。

我还尝试像这样验证 SSMS 中的所有数据库RESTORE VERIFYONLY FROM DISK = 'D:\BACKUP\Db1.bak' GO,结果在每次数据库检查中都有效。

我还尝试从 SSMS 中删除 Db1 并恢复较少的 KB 文件并检查了几个表(不是全部)的一些数据,它似乎正确显示了表中的所有数据,但文件大小让我不满意。

谢谢你。

标签: sqlsql-serverssms

解决方案


我怀疑,就像最初提到的那样,您在我的默认设置下进行了压缩,并且使用 GUI,但设置并没有使用该设置(如果您选择在 GUI 中压缩,您会得到类似的大小)

如果服务器选项backup compression defaulton,即使您没有在backup命令中提及它,compression也会应用。所以在这两种情况下都会有compressed backup. 但很容易看出,只需为两者运行此命令backups

restore headeronly
from disk = 'here_the_full_path_with_filename';

在第 5 列中,如果您的backupis ,您将获得标志compressed

但是造成这种差异的原因是另一个,运行时您会看到它restore headeronly:您对同一个文件进行了多个操作。 backups

您使用了backup命令with noinitfromSSMS和相同的file name,所以现在这个文件包含多个backuprestore headeronly并将显示它们。


推荐阅读