我在一个高交易金融系统工作。我们有一个表,它同时执行大量的事务更新。对所有查询进行优化,并构造数据模型以灵活地支持并发性。我注意到的一件奇怪的事情是,在更新期间,如果我们在多个行上运行一个运行SUM(balance)函数的查询,AWR报告显示57%的DB时间用于行锁争用。根据我在Oracle锁定文档中所读到的内容,任何读取都不能获取行上的锁,并且可以安全地读取提交的数据。如果需要成为SUM函数一部分的行之一已被Select for Update语句锁定,那么读取查询将需要等待直到锁被释放吗?
如果没有读取