返回数据库常见问题
帮助中心 · 常见问题数据库1 分钟阅读

数据库长时间运行的事务为什么会引发问题?

长时间未结束的事务可能持有锁或旧行版本,延迟清理并加剧并发竞争。影响取决于数据库引擎和工作负载;调整隔离级别或超时前,应先查明事务一直未结束的原因。

数据库

查明事务等待原因和持续时间

使用数据库支持的监控工具检查事务年龄、当前查询、会话所有者和锁等待。事务可能正在等待应用输入或网络 I/O,而不是持续占用数据库执行资源。

业务规则允许时,应将大型批处理或用户交互拆成更短的事务。用户查看页面期间保持事务开启,可能阻塞写入或使旧版本保留过久。

安全地降低影响

确认操作状态和恢复要求后再提交或回滚;直接终止会话可能让应用操作未完成。适当设置有界事务超时,并明确处理应用错误。

持续监控事务年龄和锁定时长,然后优化导致长事务的查询或工作流。不要在未处理部分完成状态和一致性的情况下拆分必须原子执行的操作。

返回数据库常见问题