我在我的Windows XP 64位桌面上安装了Oracle 11g,几乎使用了默认选项。 现在,当我启动数据库时,即使数据库不在使用中,也会一次增加几百KB的内存使用量。 目前我正在看Windows任务pipe理器,它显示使用超过1.4 G的oracle.exe和计数。
发生了什么? 如何设置内存使用的最大限制?
这是一个开发者机器,在大多数情况下数据库不会很大。 即使他们是巨大的,并发用户的数量也会很less。
你的memory_target设置为什么? 如果设置的很高,那么随着时间的推移,我不会感到惊讶。 在这里看看有关11g中新的memory_target参数的更多信息。 这将会限制Oracle试图获得多less内存。
memory_target参数将Oracleconfiguration为自行pipe理以前需要单独关注的内存参数:
需要注意的是STATISTICS_LEVEL必须设置为TYPICAL。
实际上有两个参数:memory_max_target和memory_target。 第一个设置memory_target的最大值,并要求重新启动一个实例:
ALTER SYSTEM SET memory_max_target = 1500M SCOPE=SPFILE;
一旦到位,memory_target参数可以dynamic设置,无需重新启动实例:
ALTER SYSTEM SET memory_target = 1000M;
对于那些想要一个基本的“设置并忘记”内存pipe理设置的人来说,这是一个非常好的function。 设置你认为你需要memory_max_target的最高值,然后使用memory_target的值来调整你的需要。 让Oraclepipe理各个参数。 Oracle将使用实例统计信息来pipe理这些值,因此,当您的实例在使用模式方面发生变化时,Oracle会考虑到这一点。
关于这些参数的另一个很好的参考可以在Oracle常见问题的Oracle Wiki中find 。