我的团队中有些人正在针对 Oracle 数据库运行性能测试。在执行脚本期间,他们发现 v$sysstat 表中的“用户回滚”值大幅增加。在模拟几百个用户的长达一小时的测试中,该值增加了数十万。测试大部分执行对数据库的只读操作或简单插入。因此,我不希望任何事务回滚。这个值是什么意思?我应该关注这个统计数据吗?我应该查看什么原因?
如果重要的话,测试将针对通过 ADO.NET 和 ODP.NET 生成 SQL 的 ASP.NET 应用程序执行。
答案1
我怀疑这是应用程序如何“结束”不进行更新的事务的产物。
检查状态“回滚更改 - 已应用撤消记录”。这实际上表明了回滚所完成的工作量(即实际上必须回滚多少更改)。