但是需要注意的是,在某些版本中(如:Oracle 9.2.0.5),设置cursor_sharing为similar可能导致SQL的version_count过高的Bug,该选项在不同版本中都可能存在问题,是需要斟酌使用的一个参数,设置该参数不过是一个临时的解决办法,根本的性能提升仍然需要通过优化SQL来解决。
除了Bug之外,在正常情况下,由于Similar的判断机制,可能也会导致SQL无法共享。在收集了柱状图(Hisogram)信息之后,如果SQL未使用绑定变量,当SQL使用具备柱状图信息的Column时,数据库会认为SQL传递过来的每个常量都是不可靠的,需要为每个SQL生成一个Cursor,这种情况被称为UNSAFE BINDS。大量的version_count可能会导致数据库产生大量的cursor:pin S wait on X等待。解决这类问题,可以设置cursor_sharing为FORCE或者删除相应字段上的柱状图信息。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/35489/viewspace-711571/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/35489/viewspace-711571/
本文详细介绍了Oracle9i数据库中cursor_sharing参数的similar选项。该选项旨在利用柱状图信息提高SQL执行计划的准确性。但在某些版本中可能存在Bug,导致SQL版本计数过高。此外,还讨论了解决SQL无法共享的问题方法。
2701

被折叠的 条评论
为什么被折叠?



