一、数据库优化规范
1.不同用途的数据放在不同的tablespace避免资源争用
2.不同的tablespace放在不同的物理驱动器调高I/O并发能力
3.日志文件放在速度快的磁盘上,数据文件可以放在速度慢的磁盘上
4.日志文件的同组中不同成员放在不同的物理磁盘
二、通过物理文件的读写次数来调优
Select d.tablespace_name,d.file_name,f.phyrds,f.phywrts from v$filestat f,dba_data_files d
where f.file#=d.file_id;
三、可以通过设置Oracle读写块的大小提高I/O效率,参数:DB_FILE_MULTIBLOCK_READ_COUNT
四、配置多个DBWn
Alter system db_writer_precesses
1.开启异步I/O
2.在不支持异步I/O的情况下,修改dbwr_io_slaves数量也可以达到增加DBWn的效果
五、LGWR是使性能下将
select sid,event,seconds_in_wait,state from v$session_wait where event='log buffer space'
语句执行后应该没有为空,即没有log buffer space wait
select name,value from v$sysstat where name in ('redo entries','redo buffer allocation retries')
语句执行后,如果redo buffer allocation retries此值过大说明redo buffer太小
六、归档引起
1.增加redo log 组和成员
2.archive文件太多,没地方写归档文件,可以删除文件
3.增加归档进程 log_archive_max_proceses
七、执行计划
必须在同一个窗口执行这2条语句
1.explain plan for select * from gy_gdxm;
2.select * from table(dbms_xplan.display());
八、索引压缩
压缩索引可以提高索引的查询效率,节约空间
1.当创建索引时使用:
create index emp_last_idx on hr.employees(last name,first_name) compress;
2.重建索引时使用:
alter index emp_last_name_idx rebuild compress;
九、索引判断回滚段竞争的SQL语句
select rn.name, rs.GETS, rs.WAITS, (rs.WAITS / rs.GETS) * 100 ratio
from v$rollstat rs, v$rollname rn where rs.USN = rn.usn;
当Ration>2时存在回滚段竞争,则需增加更多的回滚段
十、判断恢复日志竞争的SQL语句
select name,(t.IMMEDIATE_MISSES /decode((t.IMMEDIATE_GETS + t.IMMEDIATE_MISSES),0,-1,
(t.IMMEDIATE_GETS + t.IMMEDIATE_MISSES))) * 100 immediate_contention,
(t.MISSES / decode((t.GETS + t.MISSES), 0, -1, (t.GETS + t.MISSES))) * 100 wait_contention
from v$latch t where name in ('redo copy', 'redo allocation');
mmediate_contention或wait_contention的值大于1时存在竞争
十一、判断表空间碎片
select t.tablespace_name,sum(t.bytes),max(t.bytes),count(*),max(t.bytes)/sum(t.bytes) radio
from dba_free_space t
group by t.tablespace_name order by t.tablespace_name;
如果最大空闲空间占总空间很大比例则可能不存在碎片,如果比例较小,且有许多空闲空间,则可能碎片很多
十二、确定高速缓冲区命中率
select 1-sum(decode(name, 'physical reads', value, 0))/(sum(decode(name, 'db block gets', value, 0)) +
sum(decode(name, 'consistent gets', value, 0))) hit_ratio
from v$sysstat t where name in ('physical reads', 'db block gets', 'consistent gets');
如果命中率低于70%,则应该加大init.ora参数中的DB_BLOCK_BUFFER的值
十三、确定共享池命中率
select sum(pins) pins,sum(reloads) reloads ,(sum(reloads)/sum(pins) )* 100 ratio1 from v$librarycache ;
select sum(gets) gets,sum(getmisses) getmisses,(sum(getmisses) / sum(gets)) * 100 ratio2 from v$rowcache;
如果ratio1大于1时,需要加大共享池,如果ratio2大于10%时,需要加大共享池SHARED_POOL_SIZE
<script type="text/javascript">
$(function () {
$('pre.prettyprint code').each(function () {
var lines = $(this).text().split('\n').length;
var $numbering = $('<ul/>').addClass('pre-numbering').hide();
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i <= lines; i++) {
$numbering.append($('<li/>').text(i));
};
$numbering.fadeIn(1700);
});
});
</script>
分享到:
相关推荐
Oracle数据库优化经典之作,全文集合了经验丰富的DBA对于Oracle数据库优化的真知灼见,让很多人受益匪浅,Oracle数据库自9i版本以后,10g,11g版本推荐使用CBO优化器,所以,本文主要结合一系列实例,详细讲解如何在...
oracle 数据库优化 oracle 数据库优化
oracle数据库优化内容: 1.Oracle数据库优化概述 2.性能规划器的使用 3.顶层会话的使用 4.Oracle专家的使用 5.索引调节向导 6.SQL分析的使用 7.锁管理器 8.性能管理员 9.表空间的重组 博文链接:...
Oracle 数据库优化技术手册 1:硬件优化,2:数据库优化,3:sql语句优化;4:优化细节;5:优化总结
oracle数据库优化,总结了30多条,有的还带低效做法和高效做法的对比,适合学习,也适合参加面试的人参考,从网上一哥们帖子看到的,感谢这个哥们!
ORACLE的优化器共有3种: a. RULE (基于规则) b. COST (基于成本) c. CHOOSE (选择性) 设置缺省的优化器,可以通过对init.ora文件中OPTIMIZER_MODE参数的各种声明,如RULE,COST,CHOOSE,ALL_ROWS,FIRST_ROWS . 你...
本文档主要提供Oracle的设计及优化的策略,主要目的是为了提高Oracle的性能,从数据库的设计阶段入手,到数据库的具体实施以及系统中如何调优
数据库高手给出的从九个不同方面介绍ORACLE数据库优化设计方案 一、数据库优化自由结构OFA(Optimal flexible Architecture) 二、充分利用系统全局区域SGA(SYSTEM GLOBAL AREA) 三、规范与反规范设计数据库 四、...
oracle数据库优化
Oracle数据库优化
大型ORACLE数据库优化设计方案,很实用!
Oracle数据库优化之数据库磁盘IO! 值得下载看看!资源免费,大家分享!!
Oracle数据库优化经验
ORACLE数据库优化设计方案(全版) ORACLE数据库优化设计方案(全版) ORACLE数据库优化设计方案(全版)
oracle数据库性能优化.pdforacle数据库性能优化.pdforacle数据库性能优化.pdforacle数据库性能优化.pdforacle数据库性能优化.pdf
oracle数据库的优化 数据库的优化 2 概述 2 监控数据库的性能: 2 优化数据库磁盘I/O 2 建立和优化数据库文件的方针: 6 监控磁盘I/O的方法: 7 优化回滚段 7 检测回滚段争用: 7 通过以下公式计算等待比率: 8 若...
在线重组Oracle数据库优化关键SAP应用性能