从Query和SSMS备份时,为什么数据库备份大小不同?

时间:2019-04-15 14:28:23

标签: sql sql-server ssms

我对使用SSMS和查询备份的文件大小感到困惑。
如果我从SSMS的默认文件夹中创建文件,例如“ C:\ Program Files \ Microsoft SQL Server \ MSSQL14.NAMEDINSTANCE \ MSSQL \ Backup”,则文件说Db1.bak约为 198292 KB < br /> 如果使用查询"backup database Db1 to disk='D:\Db1.bak'进行备份,则数据库相同,文件大小仅为 6256 KB

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

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

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

谢谢。

1 个答案:

答案 0 :(得分:0)

  

我怀疑,就像最初提到的那样,您对我有压缩   默认情况下,并且使用GUI时,设置未使用   (如果您在GUI中选择了“压缩”,   大小相似)

如果服务器选项backup compression defaulton,即使您未在backup命令中提及它,也会应用compression。因此,在两种情况下都会有compressed backup。但是很容易看到,只需对backups都运行此命令:

restore headeronly
from disk = 'here_the_full_path_with_filename';

如果您的backupcompressed,则会在第5列中获得标志。

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

您使用了backup中的with noinit命令SSMS和相同的file name,所以现在此文件包含多个backup和{{1 }}将全部显示。