第十三讲--PGA内存作用和构成

每一个进程,包括后台进程都有PGA空间。只不过后台进程占用的PGA空间比较小,平时不怎么关心。而server process占用的PGA空间比较大。

 

PGA的构成:

1.      private SQL area;

2.      session memory;

3.      SQL work areas(SQL工作区);

其中SQL work area是最重要的工作区,存放会话要处理的数据。

 

SQL工作区的作用:

1.      Server process在执行工作的时候,需要自己的工作空间。

2.      如果通过session执行SQL:select * from t2;没有排序的取数据,block被调到buffer,然后数据从buffer一行一行的经过server process的PGA返回给用户。在没有排序的情况下PGA空间的使用意义不大,数据只经过PGA而已。

如果执行SQL:select * from t2 order by id desc;数据从buffer发送到PGAs,在PGA里进行排序,然后返给用户。所以PGA一定有一块空间是专门用来排序的,这块空间叫做sort_area_sizesort_area_size随着数据量大小的变化而动态变化。Sort_area_retianed_size规定了sort_area_size最小值。

3.      oracle是关系型数据库,表与表之间有关系,经常出现联表查询,这个时候就需要对多个表进行hash连接,此时就会用到hash_area_size空间。

你可能感兴趣的:(oracle)