Oracle 等待事件 unbound tx 官方解释,作用,如何使用及优化方法
本站中文解释
Oracle事件unbound tx,指的是未被绑定事务标识符(transaction identifier)的事务。一般来说,当执行一个事务时,系统会为其分配一个事务标识符,用于唯一标识该事务,并用于确定之后的操作都是属于该事务的操作,但在一些操作的关系中,会出现一个未被绑定事务标识符的情况,即unbound tx。
一般地当Oracle执行一个查询操作时,会根据它去找 已有的事务标识符,从而确定是属于当前查询操作,还是属于之前已有的其它事务,但是在某些情况下,这个查询操作只有一个session却没有属于某个已有的事务标识符的操作(transaction),就是这种没有绑定事务标识符的操作,就被称为unbound tx,由此可以看出,unbound tx主要是系统查询操作之间的关系变得复杂,致使系统不知道要将这次查询归属于哪个事务,因而没有生成属于该查询操作的事务标识符。
unbound tx可能引发一些问题,比如Oracle没有找到一个归属这次查询操作的事务标识符,就会以查询操作为中心,孤立一个未被绑定事务标识符的事务,此时,查询操作的Join可能就不会生效,一些索引的选择可能就失去了意义,此时,查询操作的运行效率可能大大降低,影响服务器的稳定性。
另外,unbound tx还可能会导致一个系统 bug 的潜在问题,比如在一定的情况下,unbound tx中的某些操作可能只能由某一个事务处理,但是由于查询操作没有绑定事务标识符,可能会导致其他事务也能处理该操作, 引发一个 bug。
总之,因为unbound tx可能引发一些问题,所以,当在DBA们执行数据库维护操作,或进行性能调优的时候,最好先检测系统是否存在unbound tx,以尽量避免上述问题的发生。
官方英文解释
The session waits to see if there are any transactions that have been started but do not have a Rollback Segment associated with them.
Wait Time: 1 second
Parameters: None