oracle pga设置

通常oracle内存的调整主要涉及到pga和sga两大部分,而在平常可能过多的关注放在了SGA上,而忽略了PGA。SGA_MAX_SIZE以及SGA_TARGET就可以让SGA整个部分的内存交给oracle自己托管了,它能够自动的分配各个部分了。而在PGA上面也是有这样的参数的,只要设置workarea_size_policy为auto,同时把分配给pga的内存上限设置给pga_aggregate_target就也能够像sga那样交给oracle自动分配托管。当然”自动”与”手动”这两种方式,孰优孰劣呢?也许你即使”自动”的分配了,可能由于前端app写的SQL巨烂无比,造成sga很大一部分的内存资源被自动分配给shared_pool,例如你分配给sga5G,而app的sql太糟糕了,出现非常多的硬解析,可能会出现share_pool被自动分配给了4G或更大,shared_pool过大,对于系统来说也不是很好的事情,oracle的内部结构是通过latch来维护的,如果过大,当新的sql需要解析的时候,可能需要搜索过多的内存来寻找新的合适的空间,碎片过多,latch过多,会导致CPU严重问题。如下是oracle onlince doc上关于workarea_size_policy的一些说明
WORKAREA_SIZE_POLICY specifies the policy for sizing work areas. This parameter controls the mode in which working areas are tuned.
Values:
  • AUTO
    Work areas used by memory-intensive operators are sized automatically, based on the PGA memory used by the system, the target PGA memory set in PGA_AGGREGATE_TARGET, and the requirement of each individual operator.

央行的圣诞大礼-加息

央行很给力啊,偷偷摸摸的加息了啊,其实也不能算是偷摸,周五下午的A股行情就说明了一些蛛丝马迹,只是它给的暗示,我没有警惕而已,看来加息的通道是要走上一段了,拭目以待周一吧,应该已经消化一部分了。