Oracle数据库系统诞生于美国甲骨文公司,它以优良的数据库管理系统被大家所熟知,并且其存在极强的适应性,它能够在各种大小环境中实现高效率的运转模式,并通过强大的数据搜集和处理方式提出相应的解决方案。稳定性和安全性是Oracle数据库系统最显著的优点,它的分布式处理功能使其成为了真正意义上的分布式数据库。 一、对 Oracle 系统内存结构进行概述 Oracle系统内存可依据两种方式进行划分,首先是将系统全局区、程序全局区、排序区以用户的私有和共享方向进行划分[1]。其次是将JAVA池、大池按照另一个方向进行划分。 1.1 私有和共享角度下的内存结构 1.1.1 系统全局区的内存结构探究 系统全局区的内存结构主要由重演日志缓存、数据库高速缓存和共享池组成。 (1)重演日志缓存区的内存结构研究 系统全局区可实现循环使用的缓存被称之为重演日志缓存,它可以将数据库中的变化的信息进行保留和再次操作。也可以将重要的信息进行调出更改。进行更改的主要日志文件为LOG-BUFFER,通过对其进行操作便可实现更改的目的。 (2)数据库高速缓存区的内存结构研究 将数据文件进行读取备份是数据库高速缓存区所进行的工作任务,数据高速缓存区还能够用来存储已读取的文件,将重要信息通过共享功能实现用户的读取和使用。它能够对用户的请求作出相应的答复,并充分提供可进行的服务。系统全局区(SGA)所构成文件的大小值可通过V$SGA进行查询,也可显示在 SGA 的实例程序启动中。 (3)共享池区的内存结构研究 共享池区的内存结构由数据字典缓存和库缓存组成。对于数据字典缓存来说从中可获取大量的用户、定义等信息,这些信息可通过相应的参数进行控制并通过命中率来巨鼎缓存区性能的好坏。其中参数控制的地址为SHARED-POOL- SIZE. 1.1.2 程序全局区的内存结构探究 程序全局区(PAG)可以通过创建对话的形式实现ORA-CLE的自动分配,它将ORACLE和用户进程进行合理化连接。实际上PAG是一个拥有服务器数据和控制信息作用的内部储存区[2]。PAG在进行工作时需要建立不同的连接,同时还会建立一个替身程式,用替身功能完成数据库的对接和信息交换。以此可以看出为了能够满足它进行替身作用的发挥就需要大量的内存来提供支持。共享内存会对PAG中某些相关信息存放入 large-pool-size 里边。总的来说 PAG 的优化对于 SGA 的优化起着非常重要的作用。 1.1.3 排序区的内存结构探究 排序区的内存结构是特有的区域,它有其专用的排序空间,同时要使用具有SQL语句下的内存,对其排序区可进行磁盘临时段和内存排序的划分,两种方式都能实现排序的功能,但是系统在进行工作时默认排序区为优先选择区域。 1.2 其他角度下的内存结构 其他角度下的内存结构主要有JAVA池区和大池区。对于JAVA池区而言它最大的特点是运用JAVA语言对系统进行开发使用,其实本质结构还是属于SAG。而对于大池区而言它最大的特点是可以进行内存选择,并对RMAN管理器中内存区域的数据进行恢复,进行恢复的主要工具为数据库备份工具,其本质内容同样是属于 SAG. 二、对 Oracle 系统内存结构优化配置研究 2.1 对 SAG 进行优化探究 要对Oracle进行优化选择首先要进行相应的假定。假定SAG占有系统大约50%左右的内存空间,可以对SHARED-POOL-SIZE进行相应的设置把握SAG的大小,除了通过以上设置来完成设定外还可通过 DB-BLOCK-BUFFER 来控制SAG的大小。若是出现引入路径偏差造成数据进入共享池中时,会使得I/O增加,导致系统的功能性降低 [3]。例如在内存大小为1G的服务器中SGA依照以上假定大约为500M,一般情况下对数据进行衡量时可采用 sort-area-size=64k 系统自定义排序内存来衡量。 2.2 对高速缓存区进行优化探究 高速缓存区的优化管理方式为通过对LRU算法中较少被使用的数据进行退出内存进行优化处理。同时高速缓存区被用来对 SQL 语句进行储存。因此在对其进行优化处理时要着重关注 SQL 区域内的分析调用,对不是非常必要的分析调用进行缩减处理。要充分实现SQL语句中重用功能的体现,因此需要对数据进行规范化标准处理,例如,将SQL语句在进行编排时采用相同的大小写字母,也最好采用连编变量。只有这样才能做到数据的统一处理,以达到减少缓存的目的。 2.3 对数据字典缓存区进行优化探究 数据字典是对oracle数据库中的数据进行缓存的区域,数据库做出的任何程序工作步骤都会对数据字典的缓存产生较大的影响 [4]。 因此为了优化数据字典,减少数据字典的缓存就需要对oracle和数据字典共同进行优化处理。数据字典缓存的要求使得 DC-MISS-RATIO 占有量不超过 15%。依据以上条件对数据字典进行优化的可能条件进行测量。 2.4 对排序进行优化探究 排序是一项浩大的工程,他需要CPU和硬盘等空间进行消耗和占用。排序的复杂性要求在进行oracle数据库进行处理时,尽量减少对排序的使用。若无法完成上述要求则需实现排序的优化处理,增加内存中的排序减少硬盘中的排序,优先选择内存中的排序,当较大的表已经占用了硬盘空间时,就需要将 temp 和 oracle 文件进行物理划分。ALTER INDEX,ORDER BY, MINUS 等命令都可以触发排序命令。磁盘排序中的ratio值的大小不应超过5%,若超过5%就需要对 SORT-ARER-SIZE 的值进行适当的增加调整。 三、检验 Oracle 数据库是否优化的判断标准 通过数据优化处理能够帮助oracle数据库提升整体空间性能,实现其更好地操作。但是优化完毕后如何对优化的结果进行判断呢?这时就需要参照相应的指标来进行辅助判断。对于数据库缓存区、高速缓存区、数据字典高速缓存区和重演日志缓存区进行命中率的判断。数据库缓存区和数据字典高速缓存区通过相应的脚本进行辅助判断后结果要大于90%,高速缓存区数值最好接近100%,而重演日志缓存区的数值可以通过两方面进行判断,对于脚本而言其值不应大于零,对于日志等待进行判断时,如果其值大于零则需对LOG-BUFFER 的值进行调整。 四、结束语 上文中首先对oracle数据库系统内部结构进行了概述,然后依据数据库内部结构各自的特点探讨了如何对oracle数据库进行优化配置,最后对检验数据库是否已经达到优化水平进行了概述。在实际应用中一定要注重对oracle的系统内存进行优化处理,只有这样才能保证系统的功能性能够更好地发挥。 参 考 文 献 [1] 江李兵 , 江川宁 . Oracle 数据库的性能调整与优化方法探析 [J]. 计算机光盘软件与应用 ,2014,10:140+ [2] 刘恩军 . ORACLE 数据库性能调整与优化研究 [J]. 电脑知识与技术 ,2014,20:4629-4630+4661. [3] 于颖 . Oracle 的性能调整与优化分析 [J]. 信息安全与技术 ,2013,02:54-56. [4] 卢友娥 , 游莉 . Oracle 数据库系统内存优化探讨 [J]. 石油工业计算机应用 ,2011,01:41-43. |