首先要确定是oracle吃了内存,通过操作系统的工具去看看,是不是oracle干的。 然后每天查一下v$sgastat,看看是不是有一个长的比较快的。 如果是linux下,可以用ps -A v看看哪个进程占的内存最多,哪个长得最多
这种情况应该是SQL语句有问题,导致SQL语法解析(parse)的次数无限增多,直到填满整个POOL。 oracle每发现一个新sql语句就将占用sql_area缓冲区,并将其内容写入sql_area表中不管什么情况,建议使用如下语句:(此语句在数据库空闲时不对数据库造成任何影响) ALTER SYSTEM FLUSH SHARED_POOL;然后再查看内容就会多出来很多的
然后每天查一下v$sgastat,看看是不是有一个长的比较快的。
如果是linux下,可以用ps -A v看看哪个进程占的内存最多,哪个长得最多
oracle每发现一个新sql语句就将占用sql_area缓冲区,并将其内容写入sql_area表中不管什么情况,建议使用如下语句:(此语句在数据库空闲时不对数据库造成任何影响)
ALTER SYSTEM FLUSH SHARED_POOL;然后再查看内容就会多出来很多的
你的应用会出错的,为什么不关闭游标?