这里只讲操作步骤,不讲原理。

Session 1 更新对象单没有提交

oracle 阻塞会话的查看与解除_性能

Session 2 更新的时候由于等待session锁更新行的tx 锁而陷入阻塞

oracle 阻塞会话的查看与解除_性能_02

Session 3更新的时候由于等待session锁更新行的tx 锁也陷入阻塞

oracle 阻塞会话的查看与解除_阻塞_03

问题的根源可以通过以下的查询获取。

oracle 阻塞会话的查看与解除_oracle_04

可以看出sid 100sid 33 都在以mode6(排他模式)请求tx 锁,而陷入阻塞队列。

em中看的更加清楚一些。

查看阻塞锁

oracle 阻塞会话的查看与解除_oracle_05

产看阻塞会话

oracle 阻塞会话的查看与解除_性能_06

原因和现象已经很明显了。

解决方法,命令行方式,只要找到引起阻塞会话的 sidserial#,问题就此可以解决。

oracle 阻塞会话的查看与解除_oracle_07

确认锁住的对象

oracle 阻塞会话的查看与解除_性能_08

事实上找到sid 就可以解决问题,

图形界面的话 

oracle 阻塞会话的查看与解除_阻塞_09

Kill session 这个按钮就可以解决,没图形的话那只能在命令行下

oracle 阻塞会话的查看与解除_性能_10