查明事务等待原因和持续时间
使用数据库支持的监控工具检查事务年龄、当前查询、会话所有者和锁等待。事务可能正在等待应用输入或网络 I/O,而不是持续占用数据库执行资源。
业务规则允许时,应将大型批处理或用户交互拆成更短的事务。用户查看页面期间保持事务开启,可能阻塞写入或使旧版本保留过久。
安全地降低影响
确认操作状态和恢复要求后再提交或回滚;直接终止会话可能让应用操作未完成。适当设置有界事务超时,并明确处理应用错误。
持续监控事务年龄和锁定时长,然后优化导致长事务的查询或工作流。不要在未处理部分完成状态和一致性的情况下拆分必须原子执行的操作。