欢迎来到天天文库
浏览记录
ID:22798771
大小:686.60 KB
页数:36页
时间:2018-10-31
《oracle基本概念及操作》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、.基本概念1.1数据库和数据库实例数据库(database脚数据的集合激据库是用存储数据的一种媒介,Oracle数据库由参数文件,控制文件,数据文件,日志文件,口令文件等等文件组成。数据库实例(instance)就是我们访问数据库的通道,Oracle数据库实例由系统全局区(SystemGlobalArea,SGA谇口后台进程backgroundprocesses)鵬。通常情况下,一个oracle实例只能同时打开一个oracle数据库。一个数据库能同时被多个实例打开(RAC)。1.2内存结构InstanceSystemGlobalArea
2、(SGA)SharedPoolSharedSQLAreaPrivatefSELECT*FROM(SQLAreaemployees丨(SharedServerOnly)LibraryCacheLargePool/FreeMemoryzl/OBufferArea/UGADataDictionaryCacheServerResultCacheOtherReservedPoolResponseQueueRequejQueue■■■■■雇■■■■■■DatabaseBufferCache111FixedJavaSGAPoolStreamsPoo
3、lPGAfi—■SQLWorkAreasServeriSessionMemoryPrivateSQLAreaProcessOracle内存结构SGASGA(SystemGlobalArea系统全局区域)是一组包含一个Oracle实例的数据和控制信息的共享内存结构。*是为Oracle系统分配的共享内存;*是实例的主要组成部分;*是影响数据库性能的非常重要因素;*随实例启动/关闭而被分配/回收。DBbuffercacheDatabasebuffercache:缓存了从磁盘上检索的数据块<,SharedPool缓存了各会话间可共孚的各种结构。
4、Librarycache缓存了可执行的SQL和PL/SQL代码DataDictionaryCache缓存了数据字典ResultCache缓存查询结果和PL/SQL函数结果,可选LargePoollarge_pool用来分配大内存块,来处理sharedpool不适合处理的大内存分配。使用large_pool的对象主要有:*共享程服务器MTS:在SGA的large_pool中分配UGA;*语句的并行查询ParallelExection:用作进程间的消息缓冲器;*恢复管理器RMAN:备份时用作磁盘I/O缓冲器。RedoLogBuffer对数据
5、库的任]可修改都按顺序被记录在该缓冲区(插、删、改),然后由LGWR逬程根据条件将更改信息批量与入磁盘的redolog文件,以节省磁盘10。该缓存不参与ASMM的动态管理,不能自动调整大小。JavaPool保存了JVM中特定会话的javacode和数据PGAPGA(ProgramGlobalArea,程序全局区)是一个非共享的内存结构,包含了Oracle进程的独有数据和控制信息,PGA在Oracle进程启动时有OracleDatabase创建。一个PGA仅为一^服务进程或后来进程而存在,各个单独的PGA的结合称之为TotalInstan
6、cePGA或InstancePGA。PrivateSQLArea私有SQL区存储解析后的SQL语句信息和其他一些会话特有的信息,当服务进程执行SQL和PL/SQL代码时,进程使用私有SQL区来存储绑定变量,查询状态信息等。SQLWorkAreasSQL工作区也是一私有的PGA内存区域,用于执行一些内存密集型的操作,例如,排序操作用sortarea来对一些行进行排序,hashjoin操作用hasharea创建hash表,bitmapmerge操<乍用bitmapmergearea来对多个bitmapindex进今亍merge操
7、乍。Ses
8、sionMemory用于专用服务器模式时分配UGAUGAUGA(UserGlobalArea,用户全局区)存储会话变量,如登录信息等,以及其他一些数据库会话需要的信息。1.3专用服务器和共享服务器专用服务器进程(DedicatedServer,默认)每次在对Oracle进行访问的时候,Oracle0艮务器的Listener会得到这个访问请求,然后会为这个访问产生(在UNIX上,这是通过fork()和exec()系统调用做到的)一个新的进程来进行服务一个服务进程对应一个用户进程;优点:每个用户连接分配一个服务器进程,响应迅速及时;缺点:每
9、个用户连接需分配一个PGA内存,资源耗费大。共享服务器进程(MultiTreadedServer)在数据库的初始化的时候就会创建一批服务器连接的进程,然后把这些连接进程放入一个连接池来进行管理。初始化的池中
此文档下载收益归作者所有