应该是数据库服务器的share pool空间不够了,增加数据库启动文件init.ora中的share pool size参数就可以了。
鄙人认为是你数据库的sql缓冲区满了!而且一般缓冲区都是足够用的!我认识肯定是你的sql语句写的! 例如 一条查询语句 如果完全相同的话!执行一次后!会放在sql缓冲区里!下次再执行的话!就直接命中目标! 所以如果你的语句select * from table where 条件 , 如果使用动态参数传递,尤其是使用动态游标的话!如果不注意!执行某查询 根据条件的传入参数不同,会在缓冲区形成大量的缓存 , 造成oracle 中著名的ORA-04031错误逸出! 如一天语句 select * from table a where a.name= '1' 是一条. select * from table a where a.name= '2' select * from table a where a.name= '3' select * from table a where a.name= '4' select * from table a where a.name= 'n' 这样一条简单的语句重复n次 ! 看你不益处都难啊! 还是找个oracle高手帮你解决吧!
select * from table a where a.name= '2'
select * from table a where a.name= '3'
select * from table a where a.name= '4'
select * from table a where a.name= 'n' 这样一条简单的语句重复n次 ! 看你不益处都难啊!
还是找个oracle高手帮你解决吧!