Oracle数据库优化设计

  • 格式:pdf
  • 大小:471.93 KB
  • 文档页数:2

数据缓冲区V¥SySStat中的consiStent 

getS、dbblock gets是consi stent mode 

和Current mode模式下的数据读取总量, 

physical reads是整个磁盘物理数据读取总 

量,这两个数据的读取总量的比值就是所谓的 

命中率,如果两个数据比值<90%,那么就需要 

对该缓冲区大小进行调整 。 

(五)共享池调整分析 

共享池同样也是SGA的重要组成部分,它 

主要包含了数据字典高速缓存与库高速缓存, 

这两者的作用是对整个SQL程序进行语法分 

析、编译以及执行。 

库高速缓存中会将解析过的SQL语句、PL/ 

SQL(存储过程、函数、包)进行缓存。如果为 

了工作的需要,将解析过的SQL信息重用会提 

高整个数据库的性能,可以将解析过的SOL信 

息存储在共享池中,这就需要共享池的设置 

要足够的大。通过对V¥1 ibrarycache查询实例 

来观察整个库高速度缓存的活动情况,其中的 

reloadsSNpins,它们分别是库高速缓存执行 

阶段的未命中数目和库高速缓存中被执行的次 

数,如果库缓冲区的失败率超过的1%,那么就 

需要对其进行调整。除此之外,还有些情况也 

需要共享池的设置要大,字典数据高速缓存的 

总丢失数和总的存取数的比值应该接近零,当 

这个数值超过10%,那么就需要对其进行调整。 

如将表定义的详细信息长期的存储在共享池中, 

将其进行重用,提高数据库的整体性能 』。 

通过VSroweache来对数据字典高速缓存活 

动进行详细查询,其中的get misses¥ ̄gets分 

别代表的是字典数据读取的失败和成功次数, 

通常要求的比值小于10%,若超过则需要进行 

及时的调整。 

(六)日志缓冲区优化方案 

日志缓冲区主要是保存了对数据库修改信 

息,设置的大小一般为2兆以内的内存,最小 

为500K。日志缓冲区也不能过小,否则会增加 

曰志的写盘次数,从而为I/O接口增加负担。 

日志缓冲区中的常见指令为:immediate gets 

表示成功立即得到日志缓冲区次数;immediate 

misses则表示未成功立即获取日志缓冲区次 

数。V¥1atch中的gets ̄misses表示成功获得缓 

冲日志次数以及未成功获得日志缓冲区次数, 

其失败率要小于1%,如果超出则需要对数据库 

进行调整。 

(七)合理的使用工具 

有时候想直接在SQLPLUS中看ASH/ADDM/ 

AWR报告,用下面方法比较方便,因为AWR数据 

在数据库中默认只保留7天,当我们进行性能 

对比分析需要保留时段之前的AWR时,可以采 

用脚本定时将AWR报告输出保存。 

ASH(Active Session History) 

ASH以V¥SESSION为基础,每秒采样一次, 

记录活动会话等待的事件。不活动的会话不会 

采样,采样工作由新引入的后台进程 L来完 

成。 

生成ASH报告: 

SQLPLUS>@?/rdbms/ashrpt.sql 

ASH内存记录数据始终是有限的,为了保 

存历史数据,引入了自动负载信息库(Autom— 

atic Workload Repository,AWR)由后台进程 

删0N完成。ASH信息同样被采集写出到AwR负载 

库中。由于内存不是足够的,所以MMNL进程在 

ASH写满后会将信息写出到AwR负载库中。ASH 

全部写出是不可接受的,所以一般只写入收集 

的10%的数据量,而且使用direct—path insert 

完成,尽量减少日志的生成,从而最小化数据 

库性能影响。 

写出到AWR负载库的ASH信息记录在AWR …………………………一鳗 廑 ~ J 

的基础表wrh¥acti veses sionhi St中, wrh¥activesessionhi st是一个分区表, 

Oracle会自动进行数据清理。 

AWR(Automatic Workload Repository)自 

动工作负载信息库 

AWR是Orac1 e 1Og中的一个新特性,类 

似于10g以前的stat Spack 不过在使用上 

要比Stat spack简单,提供的性能指标要比 

statspack多很多,能更好的帮助DBA来发现数 

据库的性能瓶颈。 

AWR是Oracle安装好后自动启动的,不需 

要特别的设置。收集的统计信息存储在SYSAUX 

表空间SYS模式下,以WRM¥**HWRH¥ 的格式 

命名, 默认会保留最近7天收集的统计信息。 

每个小时将收集到的信息写到数据库中,这一 

系列操作是由一个I ̄qMMON的进程来完成的。 

AwR存储的数据分类: 

WRM¥表存储AWR的元数据(awrinfo.sql脚 

本) wRH¥表存储采样快照的历史数据(awrrpt. 

sql脚本) 

wRI¥表存储同数据库建议功能相关的数据 (ADDM相关数据) 

生成AWR报告: 

SQL>@?/rdbms/admin/awrrpt 根据向导来完成Aw财艮告的生成。需要注 

意的是,在选择时间范围的时候,中间不能有 

停机(如果显示的中间有空白行,表示有停机 

情况)。在选择报告类型的时候一般使用默认 

的HTML,方便查看。 

查看数据库的AWR的设置: 

SQL>select snapinterval,retention 

from dbahistwrcontrol: 

SNAP_INTERVAL 

RETENT10N 

+00000 01:O0:O0.0(每小时收集一次) 

+00007 O0:O0:O0.0(保留7天) 

修改默认设置: 

begin 

DBMSWORKLOADREPOSITORY.MODIFY

SNAPSHOT_SETTINGS(interval=>2O, 

retention=>2*24*60): 

end; 修改成每2O分钟收集一次统计量,保留最 

近的2天统计量信息。 

手动收集一次数据库的统计信息: exec DBMS WORKLOADREPOSITORY.CREATE

SNAPSHOT: 我们还可以通过DBMSW0RKL0ADREPOSITORY包完成对基线、默认设置的修改等 

操作。 

ADDM(Automatic 

Monitor AWR) 

是Oracle内部的一个顾问系统,能够自动 

的完成最数据库的一些优化的建议,给出SQL 

的优化、索引的创建、统计量的收集等建议。 

ADDM报告生成: 

SQLPLUS>@?/rdbms/addmrpt.sql Oracle性能调整最重要的就是对最影 

响性能的SQL的调整。,在一个应用中,能够影 

响到数据库的只有SQL,也只能是SOL。我们 

不能一味依靠增强硬件,修改系统、数据库 

参数来提高数据库的性能,更多的应该关注 

那些最影响性能的SOL语句。ASH报告、AWR报 

告、ADDM报告都是能够找出最影响性能的SQL 

语句的工具。 在分析ASH报告、AwR报告的时 

候,最重要的就是关注SOL StatistiCS,SOL Statistics中最应该关注的是SQL ordered by 

Gets¥ ̄SQL ordered by Reads两个指标。大 

量的Gets(逻辑读)会占用大量的CPU时间,大 

量的Reads(物理读)会引起IO的瓶颈出现。一 

般情况下,大量的Gets会伴随着大量的Reads 

出现。当然,我们可以通过增大SGA的大小来 减少Reads的量。通过这两个指标找到了最影 

响性能的SQL,这是首要的,也是必要的。 

下一步就可以通过创建索引,调整sQL来提 

高SQL单独执行的性能,减少SQL执行时出现 

的高GetS,Reads。当然整体的性能影响还和 

excutions有关,如果这条SQL执行的次数过 

多,累加起来的量很大,那么就可以考虑通过 在应用上缓存等手段来减少SQL执行的次数。 

另外还有一个需要注意的问题就是在开发过程 

中sQL一定要使用绑定变量,来减少硬解析(大 

量的硬解析也会消耗大量的CPU时间,占用大 

量的Latch)。在开发过程中有个原则就是:小 

事务操作完成及时提交。 

我们使用这么多种方式、报告只有一个目 

的:找出最影响系统性能的SOL语句。找到SQL 

下一步就是对它进行调整了。 

我们在监控数据库时,如果是当前正在发 生的问题,我们可以通过v¥session+v¥sqlarea 

来找出性能最差的SOL语句。如果在一个小时 

以内发生的我们可以通过生成ASH报告来找出 

SQL。如果是l小时以上或几天我们可以通过 

AwR于艮告来找出几小时,几天以来最影响系统 

的SOL语句。ADDM报告基于AWR库,默认可以保 

存30天的ADDM ̄告。 

我们也可以直接查询试图: 

v¥session (当前正在发生) 

v¥session wait (当前正在发生) 

v¥sessionwaithistory (会话最近的1O次等待事件) 

v¥activesessionhistory (内存中的ASH采集信息,理论为14,时) 

wrh¥activesessionhistory (写入 

AWR库中的ASH信息,理论为14,时以上) 

dba hist active sess history (根据 

wrh¥active session history生成的视图) 

四、总结语 

企业中使用Orcal e数据库来储存数据, 

有效的改善了以前对于企业信息数据处理的 

问题。有效的节约了信息处理资源,且采用 

Orcale数据库将所有的员工等信息进行备份, 

方便以后查询,若数据库的数据不丢失,那 

么则能够通过查询进行查询。本文主要针对 

Oracle数据库进行介绍,然后根据数据库中的 

内容进行优化,为以后企业在数据库的优化上 

提供借鉴。 

参考文献 

【1】温创新.电视广告商务平台中Oracle数据库的ADICI 

设计与优化研究p】.中南大学,2011. 

f21王斌.基于Oracle数据库技术的航行情报系统(CNMS) 

性能优化Ⅱ)].电子科技大学,2010. 

[3】张舒.超大型Oracle数据库的基础设计和优化设计U】. 

价值工程,2011,10:178. 

励文杰.大型数据库ORACLE数据库的优化设计方案 

卟科技风,2011,19:145.・ 

[5]覃艳.Oracle数据库高性能优化设计方法初探卟电脑 

知识与技术,2012,23:5505—5507. 

作者简介:张建业(1972一),男,浙江浦江人, 

1995年毕业于武汉水利电力大学计算机应用专业,高 

工,现供职于新疆电力公司,研究方向:信息化建设 

管理。 

电早世界

一187—