在没有记录完整值

时间:2017-09-25 15:40:49

标签: sql sql-server

如果有人建议获得更好的头衔,请成为我的客人

背景:我有一个图像表来存储来自数千个订单的照片,但是一旦这些订单完成/取消,我想删除图像(存储为varbinary)而不删除整行,这样我就不会#39; t超过10GB的SQL快速限制

我不想删除该行的原因是因为我有另一个表格,其中包含一些图像属性(裁剪区域,亮度等)以及是否由于某种原因需要恢复图像(简单的API调用另一个服务器),它只会更新images表中的现有记录,我仍然可以访问属性表中保存的该图像的属性

所以这是查询的样子

UPDATE images
SET images.image = NULL
FROM images
INNER JOIN orders on orders.order_id = images.order_id
WHERE orders.status = 'COMPLETED'

它需要永远,因为它可能一次归零几GB的varbinary数据(订单是在批量生产中完成的,而不是一个一个地完成)。然后,所有这些都保存在事务日志中。它可以让我的机器使用SSD最多一分钟来完成,而生产机器的硬盘驱动器可以使用几分钟。

有没有办法可以为每个查询执行简单的事务日志,而不是将整个日志设置为简单模式?或者更好的删除varbinary值的方法?

谢谢

0 个答案:

没有答案