Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1150168
  • 博文数量: 231
  • 博客积分: 2500
  • 博客等级: 少校
  • 技术积分: 2662
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-03 16:35
个人简介

学无止境

文章分类

全部博文(231)

文章存档

2014年(7)

2013年(103)

2011年(11)

2010年(53)

2009年(57)

分类: Oracle

2013-10-11 14:00:31

并行执行的slave必须要交换数据和信息,才能在一起工作。
所以必须从共享池或大池里分配内存供它们使用。这决定于PARALLEL_AUTOMATIC_TUNING参数的设置。
 
如果PARALLEL_AUTOMATIC_TUNING = TRUE,将从大池中分配内存,否则从共享池中分配内存。
在这种情况下,自动增大大池,已满足操作。
还有一个隐含参数_PX_use_large_pool也控制了从哪个池中分配内存。
当设置了PARALLEL_AUTOMATIC_TUNING或PARALLEL_MIN_SERVERS参数时,在数据库启动时,会分配一些叫"PX msg pool"的内存,用来避免内存碎片以及更快地获得用于PX缓存的内存。
 
从10g开始,PARALLEL_AUTOMATIC_TUNING参数以及弃用了,在10g中,只要设置了sga_target,就会从大池中分配内存。
 
在10g中,如果有以下设置,PX message buffers从大池中分配:
a.) parallel_automatic_tuning = true (不赞成使用)
b.) _PX_use_large_pool = true
c.) 设置sga_target
 
在11g中,如果有以下设置,PX message buffers从大池中分配:
a.) parallel_automatic_tuning = true (不赞成使用)
b.) _PX_use_large_pool = true
c.) 打开了SGA自动调节,设置sga_target或memory_target
 
可以通过查询V$SGASTAT视图,监控PX msg buffer的内存分配情况。
从大池中分配的叫"PX msg pool",更大一些;从共享池里分配的叫"PX subheap",更小一些
 
SQL> select * from v$sgastat where name like 'PX%';
 
POOL         NAME                            BYTES
------------ -------------------------- ----------
shared pool  PX subheap desc                   140   <<<
shared pool  PX msg pool struct                728
shared pool  PX QC deq stats                  1476
shared pool  PX server deq stats              1476
shared pool  PX subheap                     174748
shared pool  PX QC msg stats                  2288
shared pool  PX server msg stats              2288
large pool   PX msg pool                   1074000   <<<
 
如果设置了PARALLEL_AUTOMATIC_TUNING = FALSE (没有设置sga_target的情况下),共享池不会增加,用户的并行请求将会共享池中分配合适的大小来使用。
PX msg的大小还根据PARALLEL_EXECUTION_MESSAGE_SIZE参数的大小以及并行机制的并行度来决定。
 
获得更多关于并行机制内存使用的统计信息,可以使用如下查询:
SELECT * FROM V$PX_PROCESS_SYSSTAT WHERE STATISTIC LIKE 'Buffers%';
 
获得到类似如下的信息:
STATISTIC             VALUE
-------------------   -----
Buffers Allocated     23225
Buffers Freed         23225
Buffers Current           0
Buffers HWM            3620
4 Rows selected.
 
这里包含了关于Buffers Current和Buffers HWM使用内存总数的统计。


 

阅读(893) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~