|
|
如果是9I 和配合多个CPU ,那么使用较大的shared_pool也是可以的。
从9I 开始,shared_pool中可以划分为subpool,每个subpool有自己的free list,latch资源.
在9I以前,所有的shared_pool只有一套资源使用,所以增加shared_pool反而会影响。
当然在没有优化SQL语句之前,无谓的增加shared_pool也是不合适的。
至于如何配置shared_pool使用多个subpool, 看下文:
-----------------------------------------
Prior to Oracle9i Database, the shared pool memory structures were protected by a solitary shared pool latch. Beginning with Oracle9i Database, up to seven child shared pool latches can be used to protect the shared pool structures. This is possible because Oracle9i Database can break the shared pool into multiple subpools if the server has at least four CPUs and the SHARED_POOL_SIZE is greater than 250MB. The number of subpools can be manually adjusted by the _KGHDSIDX_COUNT initialization parameter, which also supplies the appropriate number of child shared pool latches. If you manually increase the number of subpools, you should also increase the SHARED_POOL_SIZE because each subpool has its own structure, LRU list, and shared pool latch. Otherwise, the instance may not start due to the error ORA-04031: unable to allocate 32 bytes of shared memory ("shared pool","unknown object","sga heap(5,0)","fixed allocation callback" . |
|