环境:
OS: Solaris 10
DB: 10.2.0.3
今天碰到这样的怪事,用dbms_xplan.display显示一条SQL执行计划时,报错"Error: cannot fetch last explain plan from plan_table". 一开始就觉得Plan_table的版本是不是过时了,也没仔细看,就重新生成plan_table,再跑刚条SQL,还是报一样的错误,这样看来,就不是Plan_table版本的问题了,那会不会是SQL本身的问题呢?换一条SQL:select sysdate from dual,通过dbms_xplan.display正确显示结果,再跑一下有问题的那SQL,错误依旧。从上面的现象来判断,那应是SQL本身的问题。
分析一下出问题的SQL,主要是几张视图,这几张视图都是基于db link的,db link一边的数据版本是9.2.0.8的,会不会是这因为这个原因造成的?删除10G的plan_table,跑一下9i的utlxplan.sql,再跑一下刚才有问题的语句,dbms_xplan.display正常显示结果了。
还有一方法,手动update 10G plan_table里的plan_id字段,把记录里plan_id都设置成一个数值,dbms_xplan.display能正常显示结果.
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/45188/viewspace-1022784/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/45188/viewspace-1022784/