请教shared pool暴涨的原因

lkliao 2003-03-28 11:08:00
在SQLPLUS中执行一条单表查询的SQL语句,该SQL语句查询的数据量大约是14000多条记录,SQL语句很长,其where条件中有三个字段是用的in,且in的数目教多,但这三个字段都做了索引,该表的总记录数是500万,执行该sql语句的速度还可以,大约1分钟吧,但是它一执行就会导致shared pool暴涨,用工具看该语句所占用的shared memory高达120多兆,多执行两次该语句,立刻就导致shared pool满掉,请高手帮忙分析一下原因,谢谢!数据库是ORACLE 8.1.6.
...全文
131 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
penitent 2003-03-28
  • 打赏
  • 举报
回复
你用的是mts?
请分配large pool
lkliao 2003-03-28
  • 打赏
  • 举报
回复
不是data buffer满,的确是shared pool满了,所以才觉得很奇怪.解析会占用那么大空间?
而且查询速度还可以,一分钟就能出结果,但是就是shared memory占用得太大.
xiaodongisme 2003-03-28
  • 打赏
  • 举报
回复
用in时,不使用索引,建议把in都改为exists
black_snail 2003-03-28
  • 打赏
  • 举报
回复
SGA not shared pool !

你的SQL语句需要优化.可能用到了FULL table scan ,data buffer 被充满了
lkliao 2003-03-28
  • 打赏
  • 举报
回复
知道什么是mts了,我用的不是mts.
lkliao 2003-03-28
  • 打赏
  • 举报
回复
shy!什么是mts?现在的large_pool_size是64M,还不够?

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧