最近项目通过MQ发送xml消息给下位系统并记录发送日志到Oracle数据库,下位系统接收xml并反馈xml到我系统,同时我系统更新发送表。
该表每年大概150万的数据,在数据密集时间段每秒就要处理一条反馈更新,发现处理速度很慢,更新一条记录需要10秒左右,这个时间是系统无法接受的。
开始以为是表数据量有些大导致更新慢, 于是乎把历史数据迁移至历史表,表内就剩十几万数据,但是更新依然是10秒左右
于是乎查看表是否有主键,发现没有,继续查看是否有索引,结果是没有
下班后停掉服务,给表加上主键和索引,重启服务,测试后速度妥妥滴毫秒级
其实到目前问题只是表象解决了,完美的解决还需要做下一步
把更新SQL写入存储过程,并绑定变量