cursor: pin S wait on X 这个在以前叫library cache pin,10g之后libraray cache pin 被mutex取代,cursor: pin S wait on X 是因为有会话持有对象的X锁(独占锁)没有释放,而另一个会话对这个对象请求一个S锁(共享锁),这两个锁是不兼容的,一个X锁的请求会被一个S锁的持有者所阻塞,而一个S锁的请求会被一个X锁的持有者或者一个X锁的请求者所阻塞或被队列,所以找到那个阻塞者,查出原因释放掉锁。
sql child cursor不匹配不能共享的原因当然不只那些,有很多,具体你可以查看v$sql_shared_cursor的相关字段信息,关于对高版本数sql的troubleshooting,你可以查看这篇文章Troubleshooting High Version count地址:http://www.ask600.com/troubleshooting-high-version-count.html,其中提供了相关脚本来找出sql没有共享的原因。