全球旧事资料 分类
[转]Oracle10g数据库优化实用心得小结
很多的时侯,做OracleDBA的我们,当应用管理员向我们通告现在应用很慢、数据库很慢的时侯,我们到数据库时做几个示例的Select也发现同样的问题时,有些时侯我们会无从下手,因为我们认为数据库的各种命种率都是满足Oracle文档的建议。实际上如今的优化己经向优化等待waits转型了,实际中性能优化最根本的出现点也都集中在IO,这是影响性能最主要的方面,由系统中的等待去发现Oracle库中的不足、操作系统某些资源利用的不合理是一个比较好的办法,下面把我的一点实践经验与大家分享一下,本文测重于U
ix环境。一、通过操作系统的一些工具检查系统的状态,比如CPU、内存、交换、磁盘的利用率,根据经验或与系统正常时的状态相比对,有时系统表面上看起来看空闲这也可能不是一个正常的状态,因为cpu可能正等待IO的完成。除此之外我们还应观注那些占用系统资源cpu、内存的进程。1、如何检查操作系统是否存在IO的问题使用的工具有sar这是一个比较通用的工具。Rp1saru210即每隔2秒检察一次,共执行20次,当然这些都由你决定了。示例返回:HPUXhp
2B1100U9000800080503182632usrsyswioidle注:我在redhat下查看是这种结果,不知system就是所谓的wioLi
ux242120ELsmpYY07505192005103607AMCPUuser
icesystemidle103609AMall0000000139987103611AMall00000000010000103613AMall0250000259949103615AMall0130000139975103617AMall00000000010000103617AMCPUuser
icesystemidle103619AMall00000000010000103621AMall00000000010000103623AMall00000000010000103625AMall00000000010000其中的usr指的是用户进程使用的cpu资源的百分比,sys指的是系统资源使用cpu资源的百分比,wio指的是等待io完成的百分比,这是值得我们观注的一项,idle即空闲的百分比。如果wio列的值很大,如在35以上,说明你的系统的IO存在瓶颈,你的CPU花费了很大的时间去等待IO的完成。Idle很小说明系统CPU很忙。像我的这个示例,可以看到wio平均值为11说明io没什么特别的问题,而我的idle值为零,说明我的cpu已经满负荷运行了。当你的系统存在IO的问题,可以从以下几个方面解决
f联系相应的操作系统的技术支持对这方面进行优化,比如hpux在划定卷组时的条带化等方面。查找Oracle中不合理的sql语句,对其进行优化。对Oracle中访问量频繁的表除合理建索引外,再就是把这些表分表空间存放以免访问上产生热点,再有就是对表r
好听全球资料 返回顶部