请教老师关于PGA和临时表空间的问题
问题1:在讲PGA内存那块的时候,老师说到排序的话,SERVER PROCESS会用到自己PGA里的SORT AREA,当SORT AREA不够的时候,就会使用TEMP表空间,将数据从BUFFER里写入TEMP表空间,再从TEMP表空间一块块地读入SORT AREA进行排序,然后再返回给用户。
我的疑问:为什么使用TEMP表空间进行排序的时候,还要将数据从TEMP读入SORT AREA,不是直接在TEMP表空间里排好序然后就直接返给用户了吗?要不直接从BUFFER里一块块读入SORT AREA排序不就可以了吗?
排序的话,是不是所以数据都在一起才能进行,比如都在SORT AREA或者TEMP表空间?
问题2:
还是在讲PGA那块的时候,说到当数据库的使用的PGA已经达到PGA_AGGREGATE_TARGET的时候,ORACLE已经没有PGA分给新的SERVER PROCESS,这时ORACLE就会再分配一些内存给PGA
我的疑问:
ORACLE再度分配给PGA的内存是从哪里分来,是从SGA拿一部分吗?
希望老师不吝赐教,谢谢!
1、计算机所有的操作的数据都需要调入到内存中才能完成,但是排序的时候,排序空间不够的情况下,部分数据会临时性的寄存在磁盘上的temp空间中,需要的时候再次调入。
2、PGA空间不够的时候,Oracle会从计算机的物理内存中分培训空间,不会从SGA中分配空间。 oraunix 发表于 2012-6-5 19:41 static/image/common/back.gif
1、计算机所有的操作的数据都需要调入到内存中才能完成,但是排序的时候,排序空间不够的情况下,部分数据 ...
非常感谢 "
PGA空间不够的时候,Oracle会从计算机的物理内存中分培训空间,不会从SGA中分配空
"
请教大师,这个有疑问哦
假如是自动内存分配
是不可能大于MEMORY_TARGET,请问这不都是提前分配给了oracle的吗?
怎么又重新从操作系统分配呢? 数据库的使用的PGA已经达到PGA_AGGREGATE_TARGET的时候,ORACLE已经没有PGA分给新的SERVER PROCESS,这时ORACLE就会再分配一些内存给PGA
对这句话也表示怀疑,求证
页:
[1]