【问题标题】:Why Database backup size differs when backing up from Query and SSMS?为什么从 Query 和 SSMS 备份时数据库备份大小不同?
【发布时间】:2019-04-15 14:28:22
【问题描述】:

我对使用 SSMS 和 Query 备份的文件大小感到困惑。
如果我从 SSMS 在其默认文件夹中创建一个文件,例如“C:\Program Files\Microsoft SQL Server\MSSQL14.NAMEDINSTANCE\MSSQL\Backup”,则输出文件说 Db1.bak 约为 198292 KB 如果我使用查询 "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 文件并检查了几个表(不是全部)的一些数据,它似乎正确地显示了表中的所有数据,但文件大小让我不满意。

谢谢。

【问题讨论】:

  • 如果我没记错,查询将进行压缩备份。
  • SSMS 在使用 GUI 时仍然运行一组 SQL 语句。编写查询 SSMS 正在运行的脚本并将其发布(但是,答案可能会在您执行此操作之前突然出现:))。
  • @Srikarmogaliraju 我不知道。但是它压缩到相同的文件大小,就像 Db1 和 Db2 一样??
  • 仅当这是默认设置@Srikarmogaliraju。
  • @Larnu 我不明白你的评论。

标签: sql sql-server ssms


【解决方案1】:

我怀疑,就像最初提到的那样,你有压缩我的 默认,并使用 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 放入同一个文件。

您从SSMS 使用了backup 命令with noinit,以及相同的file name,所以现在这个文件包含多个backuprestore headeronly 将全部显示出来。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-28
    • 1970-01-01
    • 2014-04-22
    • 1970-01-01
    • 2011-02-20
    • 2014-02-11
    相关资源
    最近更新 更多