转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/11748179

[每日一题]  11gOCP 1z0-052 :2013-09-16  shared server mode........................................B21_内存

[每日一题]  11gOCP 1z0-052 :2013-09-16  shared server mode........................................B21_内存_02


正确答案:A

[每日一题]  11gOCP 1z0-052 :2013-09-16  shared server mode........................................B21_11gOCP_03

来自《Oracle 9i&10g编程艺术》中对UGA的解释:

     用户全局区(User Global Area,UGA):这个内存区与特定的会话相关联。它可能在SGA中分配,也可能在PGA 中分配,这取决于是用共享服务器还是用专用服务器来连接数据库。如果使用共享服务器,UGA 就在SGA 中分配;如果使用专用服务器,UGA 就会在PGA(即进程内存区)中。

       实际上,对你来说,用户全局区(UGA)就是你的会话的状态。你的会话总能访问这部分内存。UGA的位置完全取决于你如何连接Oracle。如果通过一个共享服务器连接,UGA 肯定存储在每个共享服务器进程都能访问的一个内存结构中,也就是SGA 中。如果是这样,你的会话可以使用任何共享服务器,因为任何一个共享服务器都能读写你的会话的数据。另一方面,如果使用一个专用服务器连接,则不再需要大家都能访问你的会话状态,UGA 几乎成了PGA 的同义词;实际上,UGA 就包含在专用服务器的PGA 中。查看系统统计信息时可以看到,采用专用服务器模式时,总是会报告UGA 在PGA 中(PGA 大于或等于所用的UGA内存;而且PGA 内存的大小会包括UGA 的大小)。


      所以,PGA 包含进程内存,还可能包含UGA。PGA 内存中的其他区通常用于完成内存中的排序、位图合并以及散列。可以肯定地说,除了UGA 内存,这些区在PGA 中的比重最大。

     PGA 是进程专用的内存区。这是Oracle专用或共享服务器需要的一组独立于会话的变量。PGA 是一个内存“堆”,其中还可以分配其他结构。UGA也是一个内存堆,其中定义不同会话特有的结构。如果使用专用服务器来连接Oracle,UGA 会从PGA 分配,如果使用共享服务器连接,UGA 则从SGA 分配。这说明,使用共享服务器时,必须适当地设置SGA 中大池(large pool)的大小,以便有足够的空间来适应可能并发地连接数据库的每一个用户。所以,如果数据库支持共享服务器连接,与有类似配置但只使用专用服务器模式的数据库相比,前者的SGA 通常比后者大得多。


QQ:252803295

技术交流QQ群:
DSI&Core Search  Ⅰ 群:127149411(2000人技术群:未满)
DSI&Core Search  Ⅱ 群:177089463(1000人技术群:未满)
DSI&Core Search  Ⅲ 群:284596437(500人技术群:未满)
DSI&Core Search  Ⅳ 群:192136702(500人技术群:未满)
DSI&Core Search  Ⅴ 群:285030382(500人闲聊群:未满)


MAIL:dbathink@hotmail.com

BLOG: http://blog.csdn.net/guoyjoe

WEIBO:http://weibo.com/guoyJoe0218

ITPUB: http://www.itpub.net/space-uid-28460966.html

OCM:   http://education.oracle.com/education/otn/YGuo.HTM