工作总结
发布时间:2026-04-10银行个人年度工作总结(模板)。
年初接手工行核心账务系统的账户管理模块时,我就知道这块骨头不好啃。每天几十万笔交易,月底跑批动不动就卡死,柜员在群里骂娘,领导隔三差五催。我给自己定了个规矩:不动存量代码结构,只在关键路径上动刀。
先说跑批优化。一季度最后一天定存利息结转,老程序跑了35分钟还没结束,我盯着监控屏上那条笔直的红线,心里头那个堵。业务那边已经打电话来问能不能手动切日切了。我忍到凌晨两点,把当天全量的慢日志拖下来,逐条看执行计划。结果发现一个让我骂出声的设计:每处理一个账户,它都要去历史表里做一次全表count(*),判断是不是首次结息。这个表有四百多万行,而当年写这段代码的人大概只考虑了五百个账户。我当时对着屏幕骂了句“这谁写的”。
解决过程没想象中顺。第一次改,我把count(*)换成带索引的exists判断,跑起来确实快了,但单条update还是慢。第二次我试着用游标批量取5000条后统一提交,结果忘了加with hold选项,提交完游标直接关闭,第二批数据全丢了。那晚上我折腾到凌晨四点,最后在代码注释里找到一条十年前的提示才明白问题。改完再测,35分钟压到18秒。验收那天业务方盯着报表看了一分钟,说了句“这就完了?”——他们以前都是泡杯茶等着,现在茶还没泡开就结束了。
后来我把这套方案写成了《批量任务断点续传工艺标准》,信贷批扣、积分清算、代发工资等五个模块都照着改了。不过有个教训得提一嘴:改信贷批扣时我没注意对方表的数据分布,直接用了5000的批量大小,结果undo暴涨,回滚段撑爆了。那次是半夜两点,我被值班电话叫醒,脸都没洗就远程回滚了版本。第二天我重新分析了数据特征,把批量大小调成2000,并加了动态自适应逻辑——根据当前undo使用率自动调整。这之后我才真正理解什么叫“参数不是拍脑袋定的,是试错试出来的”。
再说七月份那次死锁。周五下午四点,监控突然报警,账户表的行锁等待队列超过200。我正开会,手机震得跟马达似的。冲到工位一看,所有涉及余额变动的交易都在超时回滚,柜面已经排起长队。我第一反应不是看代码,而是敲了句select * from v$session where blocking_session is not null。抓出来一看,全是“智慧校园”批量充值接口的会话。这个接口上线才三天,开发图省事,在一个事务里先锁父账户,再循环更新子账户,还特么没做分页。
我当时先kill了阻塞源头的那几个会话——这一步得小心,我先确认了这些会话都是批量接口的后台线程,不影响柜面实时交易,才敢下手。业务恢复用了三分钟,但主管脸色还是铁青。我当场给接口加了个事务超时保护,强制5秒回滚,至少保证不会死等。真正彻底解决是重写逻辑:用临时表存充值明细,最后一条case when批量更新余额。改完后压测,两百个学生充值从原来的平均8秒降到0.3秒,而且再也没死锁过。
事后我把这次故障写进了《核心交易防死锁操作卡》,加了一条硬性规定:任何涉及批量账户更新的接口,必须提供锁粒度评估报告,否则质量验收直接打回。到现在这条规定已经拦回去三个不达标的模块。
设备维护那块的活儿说起来更琐碎。机房两台加密机,以前维护全靠老师傅口传——“感觉不对劲就重启”。有次半夜随机数生成变慢,重启完好了,但第二天又犯。我花了两个星期,每天凌晨两点爬起来抓现场。前七天啥也没抓到,日志看起来一切正常,我差点怀疑是玄学。第八天凌晨三点,我盯着监控突然发现熵池值从75%掉到32%后就不再补充,而配置的阈值明明是20%才触发。这就矛盾了。我翻了三年前的变更记录才发现,有人改过内核参数但没同步更新应用配置。 【wwW.Zw5000.COm 作文5000网】
-
群学网进阶必修:
- 单位个人年度工作总结 | 老师个人年度工作总结 | 社区个人年度工作总结 | 单位个人年度工作总结简短 | 个人年度工作总结模板 | 个人年度工作总结模板
改完参数,我把所有设备的维护步骤写成了作业票,细化到每一条命令的预期输出和异常返回码。比如加密机巡检,以前就是敲个status,现在我会检查熵池值、随机数生成速率、证书有效期三项,并和上周数据对比。这套作业票打印出来贴在机房门口,新同事照着敲,再也没出过半夜被叫醒的事。
这一年下来,我最大的体会不是技术多牛,而是知道什么时候该认怂。比如智能运维的自动熔断机制,我上半年开了个头,做了个原型能检测死锁和慢SQL,但自动隔离那一步一直没敢上线——我怕误杀正常交易。后来找DBA一起推演了三天,才确定了阈值:连续三个采样周期内失败率超过50%且平均耗时超过5秒,才触发熔断。这个方案现在还在测试环境跑,明年一季度争取落地。
对了,还有个习惯我一直坚持:每次生产变更后,不管成不成功,48小时内拿记事本记流水账——就写当时敲了什么命令、报了什么错、脑子怎么想的。比如批量优化那次,我记了条“第三步忘了with hold,重跑失败,蠢”。这些流水账后来成了故障预案库的底子,也让我在质量验收时能拿出真凭实据:七个迭代版本,零生产回滚,但验收过程中打回去过两次——一次是异常场景覆盖不全,另一次是性能测试没做峰值模拟。
-
想了解更多工作总结的资讯,请访问:工作总结
