在oracle11g中,不使用一个参数memory_target就也能利用sga和pga组件依据工作负荷接受自动出现内存分配。oracle推荐一下使用自动内存管理汉字拆分内存分配。oracle11g仍然接受手工内存分配:
1:oracle11g使用memory_target来意见内存自动分配。
2:不使用sga_target和pga_target参数来设置sga和pga,数据库会在这两个组件中内心的自我360优化。
3:你也可以不手工设置中sga中的各个组件。诸如db_cache_size,shared_pool_size等组件。oracle11g中新的内存系统初始化参数:有两个新的关键的内存初始化参数memory_target(动态参数,可以设置先分配给实例的内存数)和memory_maxv_size(支持静态参数,这个参数是可选的,设置中实例也能分配的的最内存,可以设置的是memory_target的上限值)。特别注意:虽然memory_target是一个动态参数,只不过当数据库正常运行时,你不能不能从非自动出现内存管理交换到不自动内存管理。要重起数据库将参数应用形式到实例启动过程才行。
是一组真包含一个oracle实例的数据和控制信息的共享内存结构。比较多是主要是用于存储数据库信息的内存区,该信息为数据库进程所互相访问(pga又不能宽带共享的)。它真包含oracle服务器的数据和控制信息,它是在oracle服务器所驻留的计算机的求实际内存中未能分配,如果不是求实际内存不够再往虚拟内存中写。sga几个很重要的是的特性:
1、sga的构成--数据和控制信息,我们下面会具体点介绍;
2、sga是互相访问的,即当有多个用户同样的登录了这个实例,sga中的信息是可以被它们另外访问(当涉及到互斥的问题时,由latch和enquence控制);
3、三个sga只你服务于一个实例,也就是说,当一台机器上有多个实例运行时,每个实例也有一个自己的sga事实上sga来自于os的共享内存区,但实例之间没法彼此间ftp连接对方的sga区。它通常和:1.数据库高速缓存(thedatabasebuffercache),2.历史重演日志缓存(theredologbuffer)3.网络共享池(thesharedpool)4.数据字典缓存(thedatadictionarycache)在内其它各方面的信息。1.数据高速缓冲区(databuffercache)在数据高速缓冲区中储存时着oracle系统最近在用过的数据块(即用户的高速缓冲区),当把数据中写入数据库时,它以数据块为单位接受读写,当数据下高速缓冲区塞满时,则系统手动消掉一些不常被用ftp连接的数据。假如用户要查的数据在的数据出口下高速缓冲区时,oracle自动启动从磁盘中去读取文件。数据高速缓冲区和三个类型的区:1)脏的区(dirtybuffers):乾坤二卦有也改变过并是需要写回数据文件的数据块。2)光明区(freebuffers):是没有包含任何数据并可以不再写入到的区,oracle也可以从数据文件读数据块该区。3)保留区(pinnedbuffers):此区真包含有也在去处理的也可以比较明确可以保留除用将来用的区。logbuffercache缓存对此数据块的所有修改。通常作用于复原其中的每一项直接修改记录都被被称redo条目。凭借redo条目的信息可以重做直接修改。主要是用于缓存最近被不能执行的sql语句和最近被可以使用的数据定义。它要注意由两个内存结构组成:librarycache和datadictionarycache直接修改链接共享池的大小:altersystemsetshared_pool_size64mlibraycache缓存最近被想执行的sql和pl/sql的相关信息。利用具体用法语句的共享,可以使用lru算法通过管理,由200元以内两个结构近似:sharedsqlarea、sharedpl/sqlarea、datadictionarycache、datadictionarycache缓存最近被使用的数据库定义。它包括关与数据库文件、表、索引、列、用户、权限在内其它数据库对象的信息。在语法分析阶段,serverprocess访问数据字典中的信息以解析对象名和对存取不能操作并且修改密保。数据字典信息缓存在内存中能增强速度加快响应时间。4.数据字典缓存(thedatadictionarycache)。