【问题标题】:how to speed up garbage collection after deleting filestream data删除文件流数据后如何加快垃圾收集
【发布时间】:2013-02-22 11:04:15
【问题描述】:

我的问题是关于加速文件流垃圾收集器的速度,细节在this question失败了

让我解释一下我的场景

  1. 出于调试/测试原因,我经常需要在我的开发机器上复制客户数据库
  2. 由于 DB 有时包含太多文件流 blob 数据,我更愿意将其删除,因此备份大小从 10GB 变为 2 MB
  3. 我愿意Update TABLE set BLOB = NULL
  4. 然后等待数小时或数天

既然我只需要彻底快速地删除 blob,还有什么可以工作的?是否需要定期拨打checkpoint 或手动删除Filestream 文件?

谢谢。

更新 只是为了更好地表达自己。我就是这样做的:

UPDATE TABLE_WITH_BLOBS SET BLOBFIELD = NULL

然后我希望备份大小为 2 MB...

【问题讨论】:

    标签: sql-server sql-server-2008 filestream


    【解决方案1】:

    对于“4. 并等待数小时或数天”,您是在等待 UPDATE 完成还是等待垃圾收集发生?

    CHECKPOINT 可以使用 sp_filestream_force_garbage_collection 强制垃圾收集器正常运行。

    http://msdn.microsoft.com/en-us/library/gg492195.aspx

    【讨论】:

    • 谢谢!那个 SP 正是我所需要的。
    • 是否可以将您的数据库切换到简单恢复模式(如果还没有)并发出检查点以查看是否会提示垃圾收集运行?请注意,如果您使用 FULL 恢复模式,这将破坏恢复链,如果您切换回此模式,则需要新的 FULL 备份。
    猜你喜欢
    • 2019-08-05
    • 2013-01-26
    • 2011-07-24
    • 2012-03-24
    • 1970-01-01
    • 1970-01-01
    • 2013-04-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多