我对使用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文件,并检查了一些表(不是全部)的某些数据,似乎可以正确显示表中的所有数据,但文件大小令我不满意。
谢谢。
答案 0 :(得分:0)
我怀疑,就像最初提到的那样,您对我有压缩 默认情况下,并且使用GUI时,设置未使用 (如果您在GUI中选择了“压缩”, 大小相似)
如果服务器选项backup compression default
为on
,即使您未在backup
命令中提及它,也会应用compression
。因此,在两种情况下都会有compressed backup
。但是很容易看到,只需对backups
都运行此命令:
restore headeronly
from disk = 'here_the_full_path_with_filename';
如果您的backup
是compressed
,则会在第5列中获得标志。
但是造成这种差异的另一个原因是,运行restore headeronly
时您会看到它:您对同一文件做了多个 backups
。
您使用了backup
中的with noinit
命令SSMS
和相同的file name
,所以现在此文件包含多个backup
和{{1 }}将全部显示。