![]() |
1
3
也许sql developer没有关闭它打开的游标。 因此,如果您运行一个对一百万行进行排序的查询,而sql developer只从中获取前20行,那么如果您想向下滚动并获取更多行,它需要保持光标打开。 因此,它需要保留一些与游标排序区域相关联的pga内存(称为保留排序区域),只要游标处于打开状态且未达到eof(提取结束)。 选择会话并运行:
这将显示一些游标是否仍保持打开状态并保留其内存… |
![]() |
2
0
你在使用自动内存管理吗?如果是的话,我不会担心使用的pga内存。 参见文档: 自动内存管理: http://download.oracle.com/docs/cd/B28359_01/server.111/b28310/memory003.htm#ADMIN11011 内存目标: http://download.oracle.com/docs/cd/B28359_01/server.111/b28320/initparams133.htm 您使用32位Oracle的原因是什么?最新的硬件支持64位。 |
![]() |
3
0
Oracle,尤其是AMM,将使用您提供的机器上的每一位内存。如果它没有理由取消分配内存,它将不会这样做。与存储空间相同:如果删除20gb的用户数据,则空间不会返回给操作系统。除非显式压缩表空间,否则Oracle将保留它。 我相信一个简单的测试可以减轻你的担忧。如果它是32位的,并且每个sql开发人员会话都使用100mb+的ram,那么您只需要打开几百个会话就可以导致内存不足问题……如果真的有这样一个问题的话。 |
![]() |
mak101 · SQL开发人员脚本输出到datagrid 7 年前 |
|
Caitlin · ORACLE SQL开发人员ORA-00904 7 年前 |
|
Asim Minhas · 如何获取表中最后插入的记录? 7 年前 |
![]() |
C. Greer · Oracle SQL无法找到错误原因 7 年前 |
![]() |
Thelnternet · APEX 4.2验证,至少一行必须有一个值 7 年前 |