暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle体系架构

DBStudy 2021-07-14
645
  1. 1.         oracle进程介绍

进程结构:

   用户进程(用来访问数据库客户端的总称,例如pl/sql,toad)

   服务器进程和后台进程(oracle启动的时候会启动这些必须的进程)

  1. 2.         连接方式(用户访问数据库方式)

   本机直接通过sock方式访问IP(实际开发中不可能)

   通过tcp方式建立连接,连接到oracle服务器(需要配置tsname.ora文件)

  1. 3.         内存结构

   PGA(程序全局区):其中最重要的是UGA(用户全局区),包括:会话信息、哈希信息。PGAoracle用户的进程使用的一个内存区域。一个用户进程对应一个PGA,与SGA不同的是,PGA是非共享的,主要用于用户在运行程序时的使用变量空间。

   SGA(系统全局区):包含一个oracle实例的数据和控制信息的共享内存结构。主要用于存储数据库信息的内存区,刚才也提到了,与PGA的区别在于PGA是非共享的,而SGA是共享的。SGA包含了oracle服务器的数据和控制信息。SGA组成:数据高速缓冲区、共享池、重做日志缓冲区、Java池、大型池、流池和锁管理等。下面分别介绍一下几个池。

   共享池(shared pool):共享池是由两个与性能相关的部分组成:库缓存和数据字典缓存,共享池的大小是由参数shared_pool_size决定的,共享池用于存储最近执行的sql语句和最近使用的数据定义。其中库缓存:1.存储最近执行的sqlpl/sql的信息。2.共享最常用的语句。3.管理上遵循LRU(最近最少)原则,也就是会把最近最少使用的语句移除内存区。也就是说如果一条sql语句如果好久没有执行的话,那么执行效率就会比经常执行的sql低。库缓存包括两个部分:共享sql区和共享pl/sql区,其大小是由shared pool决定的。数据字典缓存:存储在数据库中最近使用的定义,包括数据文件,表,索引,列,用户,权限和其他数据库对象。在分析阶段,服务器进程查找数据字典验证对象的名字以及是否合法访问(之前的文章中讲过sql执行顺序)。对于DML语句,如果数据字典的信息在缓存中能提高相应时间。

   数据高速缓存区:1.暂存从数据文件中获得的数据块的数据映像2.同样遵循LRU原则3.当再次需要操作这些数据时可以直接从内存中获取和更新,语句执行效率大大提高。4.初始化参数,DB_BLOCK_SIZE决定了数据块儿的大小,对于关系db存储的I/O的最小单位。

   重做日志缓冲区:1、暂存数据库中所有数据块的改变。2、内存管理的方法是FIFO(先进先出)3、重做日志被用于提供数据恢复功能(rollback)4.暂存重做日志是为了提高语句的执行速度。

以上的介绍是基于oracle体系架构的一个大体介绍,可能与我们日常开发中关系并不大,不过多了解点儿没坏处,希望大家也多多提出意见,一起进步。下一篇文章,我将分享一些与我们日常开发关系密切的数据库优化的一些东西,希望大家持续关注并分享。

King156937648


文章转载自DBStudy,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论