使用道具 举报
最初由 fusnow 发布 [B]在dedicated 下是不复制的啊,shared servers下uga本来就放在sga,为什么你会认为要复制一份啊?sort信息,session信息这些东西复制到SGA没有意义。 [/B]
最初由 fusnow 发布 [B]唉,有时候说的不严密确实容易被抓把柄啊。 因为内存里有些东西是可以被多个用户公用的,所以Oracle把他们放在SGA里,SGA包括buffer cahce和shared pool和其他的几个buffer(比如redo buffer,但redo buffer只是个buffer,不是cache) buffer cache里的东西哪里来的?从磁盘中来。 shared pool里面的东西哪里来?这就多了。dictionary cache里的东西肯定是磁盘中来,library cahce里面包括的pl/sql代码如果原来是以package的形式存在数据库里的,当然也是磁盘中来,其他的大头就是SQL和执行计划。执行计划从哪里来?是首先在PGA里产生,然后复制到library cache里的,这一点你可以看我写的一个SQL的执行步骤:http://fusnow.itpub.net/post/681/211741 但在PGA里还有很多是用不着共享的,比如sort信息,session的信息,这些东西如果共享,无非是浪费内存和给CPU增大压力而已 (当然MTS下不得不共享),所以这些东西不复制,但如果你做了hard parse生成的执行计划是对别人有用的,需要复制到library cache。 [/B]
最初由 SONGHEFEI 发布 [B]MTS下pga 只是存储stack space信息,因为当cpu 进行上下文切换的时候,要保留进程现场! MTS 下 sort_area_size 仍然在PGA中分配! [/B]
最初由 fusnow 发布 [B] 你这两句话本身就矛盾吧。 [/B]
本版积分规则 发表回复 回帖后跳转到最后一页