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—