Sitecore媒体转换工具吃存储空间

时间:2014-01-16 11:21:48

标签: sitecore sitecore-media-library

我对Sitecore的媒体转换工具有疑问。

使用此模块,您可以在硬盘驱动器位置和Sitecore数据库之间转换媒体项目,反之亦然。但每次我转换一些物品时,它都会继续占用额外的硬盘空间。

因此,当我将3gb转换为硬盘驱动器时,它会额外增加3gb(这似乎是逻辑 - 总计> 6gb),但是当我将它们转换回blob格式时,它又增加了3gb(总共9gb)。而不是覆盖数据库中的先前版本。

有没有办法清理以前的blob或什么?因为现在它使用了太多的硬盘空间。

提前致谢。

1 个答案:

答案 0 :(得分:1)

使用“清理数据库”应该可以工作,但是如果大小太大,就像我的客户端的blob表那样,由于SQL超时或者SQL Server耗尽了所有可用的锁,清理将会失败。 / p>

另一种解决方案是运行脚本来手动清理blobs表。我们之前遇到过这个问题,Sitecore支持能够为我们提供一个脚本:

DECLARE @UsableBlobs table(
    ID uniqueidentifier
    );

I-N-S-E-R-T INTO 
    @UsableBlobs    
S-E-L-E-C-T convert(uniqueidentifier,[Value]) as EmpID from [Fields]
where [Value] != '' 
and (FieldId='{40E50ED9-BA07-4702-992E-A912738D32DC}' or FieldId='{DBBE7D99-1388-4357-BB34-AD71EDF18ED3}') 
D-E-L-E-T-E from [Blobs] 
where [BlobId] not in (S-E-L-E-C-T * from @UsableBlobs)

这基本上查找仍在使用的blob并将它们存储在临时表中。它们将此表中的项与Blobs表进行比较,并删除临时表中不存在的项。

在我们的情况下,由于SQL Server锁定问题,即使这是轰炸,所以我将delete语句更新为delete top (x) from [Blobs],其中x是您认为更合适的数字。我从1000开始,最终一次删除了400,000条记录。 (是的,就是那么大)

首先尝试内置的“清理数据库”选项,如果失败,请尝试运行脚本手动清理表。

编辑注释:抱歉,必须更改“插入”,“选择”和“删除”命令以允许SO保存条目。