不知道你所说的成功率较大影响是因为什么,我所碰到的,影响交易的,一般都是应用设置了超时失败机制而“主动失败的”,所以要去分析一下为什么超时的。
一般性交易SQL的执行时间超时,大概率是主机资源被占用(尤其是IO),导致平常1s执行完成的SQL执行了5s,这样就返回超时,碰到这种情况应该说还是比较简单的,增加IO就行,从硬件上更换存储,另外也还要看看SQL的IO开销和写法,看是否能尽可能的减少开销,优化。当然,如果可以,尽可能的缩减核心数据是最理想的办法,将历史、近期数据分离,如果可以的话,能将数据分类剥离更好,从而做到“小核心”。
还有一种,我是没碰到过,但是看你的描述“全表更新”,我姑且认为是全表级别的排它锁?如果真是这样,那应该说在逻辑上就有问题了吧?
另外我没接触过存储双活做容灾的,但是从一般的同步原理可以推测,如果是为了防止数据丢失做的“严格数据一致”,比如在Oracle Dataguard中sync模式,即为了容灾数据一致,要等待容灾接受全部信息返回结果生产才能提交的机制,那么在批量任务这种大IO,大数据变化量的情况下,可以想象也是对生产影响非常大的。