WEB开发网
开发学院数据库Oracle 关于Oracle数据库的性能优化心得 阅读

关于Oracle数据库的性能优化心得

 2007-05-08 12:11:29 来源:WEB开发网   
核心提示: 当你的系统存在IO的问题,可以从以下几个方面解决:*联系相应的操作系统的技术支持对这方面进行优化,关于Oracle数据库的性能优化心得(2),比如hp-ux在划定卷组时的条带化等方面,*查找Oracle中不合理的sql语句,对其优化避免全表扫描,以减少IO等待,对其进行优*对Oracle中

当你的系统存在IO的问题,可以从以下几个方面解决:

*联系相应的操作系统的技术支持对这方面进行优化,比如hp-ux在划定卷组时的条带化等方面。

*查找Oracle中不合理的sql语句,对其进行优

*对Oracle中访问量频繁的表除合理建索引外,再就是把这些表分表空间存放以免访问上产生热点,再有就是对表合理分区。

2、关注一下内存。

常用的工具便是vmstat,对于hp-unix来说可以用glance,Aix来说可以用topas,当你发现vmstat中pi列非零,memory中的free列的值很小,glance,topas中内存的利用率多于80%时,这时说明你的内存方面应该调节一下了,方法大体有以下几项。

*划给Oracle使用的内存不要超过系统内存的1/2,一般保在系统内存的40%为益。

*为系统增加内存。

*如果你的连接特别多,可以使用MTS的方式。

*打全补丁,防止内存漏洞。

3、如何找到点用系用资源特别大的Oracle的session及其执行的语句。

Hp-unix可以用glance,top,IBM AIX可以用topas,此外可以使用ps的命令。通过这些程序我们可以找到点用系统资源特别大的这些进程的进程号,我们就可以通过以下的sql语句发现这个pid正在执行哪个sql,这个sql最好在pl/sql developer,toad等软件中执行, 把<>中的spid换成你的spid就可以了。

  SELECT a.username,a.machine,a.program,a.sid,a.serial#,
   a.status,c.piece,c.sql_text from v$session a,v$process b,
   v$sqltext c WHERE b.spid='ORCL' AND b.addr=a.paddr AND
   a.sql_address=c.address(+)order BY c.piece

我们就可以把得到的这个sql分析一下,看一下它的执行计划是否走索引,对其优化避免全表扫描,以减少IO等待,从而加快语句的执行速度。

上一页  1 2 3 4  下一页

Tags:关于 Oracle 数据库

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接