姿姿霸霸~~!
贵在坚持!
posts - 106,  comments - 50,  trackbacks - 0
一.调优的目标:
1.减少响应时间
2.减少数据库块访问
3.尽量把常用的块CACHE到内存中,提高访问的速度
4.提高OLTP的吞吐量
5.设置系统的负载

二.数据库的系统响应时间:
response time = service time + wait time
service's meaning:cpu used by this session
select * from v$sysstat t where t.name ='CPU used by this session';

时间单位:9i以后单位是百万分之一秒
其中Service Time = SQL解析时间 + 递归调用时间 + 其他时间

1.视图的使用
--实例级系统性能视图:v$sysstat
使用:(以CPU used by this session为例)
select * from v$sysstat t where t.name ='CPU used by this session';

--会话级系统性能试图:

select a.STATISTIC# from v$statname a  where a.NAME like '%CPU used by this session%';

找到STATISTIC#,代入到下面
--当前所有session的

select * from v$sesstat b where b.STATISTIC# = &STATISTIC#;

--自己的session的

select * from v$mystat c where c.STATISTIC# = &STATISTIC#;

--或者直接

select b.sid, a.STATISTIC#, a.name, b.value
  
from v$statname a, v$mystat b
 
where a.STATISTIC# = b.STATISTIC#;
 
and a.name like '%xxxxxxx%'


2.sql解析时间(sql解析过程..比较重要,后面专门写一篇)

  select name, sid, value "Total parse Cpu time"
          
from v$statname a, v$mystat b
         
where a.name like '%parse%'
           
and a.statistic# = b.statistic#


3.递归调用时间是用在语义分析阶段查找数据字典或者PLSQL内部包造成的解析所花的CPU时间

select * from v$statname a  where a.NAME like '%recursive cpu%';

实例级和会话级查询方法同上

4.其它CPU时间:通常占绝大多数,它是执行内存BUFFER搜索,索引和全表扫描涉及的IO操作所占有的CPU

select a.VALUE as "Total CPU",
       b.VALUE 
as "Parse CPU",
       c.VALUE 
as "Recursive CPU",
       a.VALUE 
- b.VALUE - c.VALUE as "Others"
  
from v$sysstat a, v$sysstat b, v$sysstat c
 
where a.NAME = 'CPU used by this session'
   
and b.NAME = 'parse time cpu'
   
and c.NAME = 'recursive cpu usage';


5.等待常是由于并发,需要等待别的会话处理完独占的资源后所花的时间,这通常也是最常见的性能问题.
如果等待时间(wait time)占响应时间(Pesponse time)的大多数时,我们需要减小等待时间来提高系统性能。我们需要剥离等待时间来分析和优化等待时间

   select d.EVENT, d.TIME_WAITED, d.AVERAGE_WAIT
     
from v$system_event d
    
where d.EVENT not in
          (
'pmon timer''rdbms ipc message''smon timer',
           
'virtual circuit status''SQL*Net message from client')

not in 里面的event通常被认为是不会产生等待的事件

三.相关视图
1.v$sysstat
这个使徒列出系统统计数据.为找到与每个统计数据号(STATISTIC#)关联的统计数据
名称,请参阅V$STATNAME.
列 数据类型 说明
STATISTIC# NUMBER 统计数据号
NAME VARCHAR2 统计数据名
CLASS NUMBER 统计数据类别:1(用户);2(重做);
4(排队);8(高速缓存);16(操
作系统);32(并行服务器);64
(SQL);128(调试)
VALUE NUMBER 统计数据值
CLASS NUMBER 统计数据类别:

2.v$sesstat
这个视图给出用户会话的统计数据.为了找到与每个统计数据号(STATISTIC#)有关的
统计数据名称,请参阅V$STATNAME.
列 数据类型 说明
SID NUMBER 会话标识符
STATISTIC# NUMBER 统计数据名(标识符)
VALUE NUMBER 统计数据值

3.v$mystat
这个视图包含当前会话的统计数据。
列 数据类型 说明
SID NUMBER 当前会话的ID
STATISTIC NUMBER 统计数据号
VALUE NUMBER 统计数据值

4.v$statname
这个视图显示列在V$SESSTAT 和V$SYSSTAT 表中的统计数据的解码统计数据名。详细信
息,请参阅V$SESSTAT 和SYSSTAT。
列 数据类型 说明
STATISTIC# NUMBER 统计数据号
NAME VARCHAR2 统计数据名。参见表B-13
CLASS NUMBER 1(用户);2(重做);4(排
队);8(高速缓存);16(操
作系统);32(并行服务器);
128(调试)


 

posted on 2010-12-22 22:55 xrzp 阅读(275) 评论(2)  编辑  收藏 所属分类: oracle-优化

FeedBack:
# re: 性能优化学习1
2010-12-22 23:01 | Jcat
你能不能再强点  回复  更多评论
  
# re: 性能优化学习1
2010-12-22 23:38 | sure_xx
@Jcat
......  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航:
 

<2010年12月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

常用链接

留言簿(4)

随笔分类

随笔档案

好友的blog

搜索

  •  

积分与排名

  • 积分 - 116539
  • 排名 - 500

最新评论

阅读排行榜

评论排行榜