批量调整勤哲 Excel 服务器图片附件尺寸
问题背景:服务器存储的“顽疾”
这是一个长期存在的痛点。勤哲服务器极其不稳定,且对附件大小有限制,但限制效果微乎其微。
由于产线员工随手拍摄的照片分辨率极高,导致大量大图直接存入数据库:
- 单张图片体积可达 14MB;
- 一张问题单若上传 8 张图,体积常达 30MB;
- 大量此类数据堆积,导致服务器数据库不堪重负。
如果文件存在本地文件夹内,使用工具批量调整尚且容易,但由于图片直接存储在数据库中,处理起来非常棘手。
第一步:查看附件体积
可以通过以下 SQL 语句,自行查询数据库中附件的具体体积情况:
SELECT
c.FullName AS 详细路径,
a.ObjName AS 模板名称,
ROUND(
ISNULL(
DATALENGTH(dbo.ES_CasePic.img) / 1048576.0,
0
),
2
) AS 附件大小MB
FROM
dbo.ES_Bo AS a
LEFT OUTER JOIN dbo.ES_V_TmpClass AS c ON a.ClassId = c.ClassId
LEFT OUTER JOIN dbo.ES_Tmp AS t ON a.ObjId = t.objId
INNER JOIN dbo.ES_RepCase ON dbo.ES_RepCase.RtId = t.RtId
INNER JOIN dbo.ES_CasePic ON dbo.ES_CasePic.RcId = dbo.ES_RepCase.rcId
WHERE
dbo.ES_CasePic.NFSFolder = ''
ORDER BY
附件大小MB DESC;第二步:解决方案(Python 脚本)
借助 AI 编写了一个 Python 脚本,用于批量调整图片分辨率。
处理效果:
- 数据库图片附件表单: 从 16.41GB 降至 1.45GB(直接减掉 15GB);
- 整个数据库体积: 从 51GB 显著降低至 33GB;
- 压缩后体积: 从 20.4GB 降至 5.96GB。

注意事项与执行建议
- 代码说明: Python 代码由 AI 生成,已在生产数据库执行验证,无异常。若不清楚代码逻辑,请自行咨询 AI。
- 环境兼容性: 是否能在其他服务器上成功执行,取决于你的具体运行环境。
- 核心提醒: 执行前请务必做好备份工作! 作者不对执行脚本带来的任何后果承担责任。


评论 (0)