美创科技技术社区

注册

 

发新话题 回复该主题

Oracle性能测量体系(Execute Time) [复制链接]

1#

Oracle性能测量体系(Execute Time) 2013-11-05 21:01:27


分类: Oracle


      在数据库处理时间响应中,一般来说Execute处理阶段是消耗资源的大户,也是消耗时间的主体部分。特别在批处理系统,没有人去关心parse time的微薄消耗。

          Execute RT:=  Execute CPU Time + Execute Queue TIme
                            :=  SQL Elapase + PLSQL Elapse + Java Elapse
                            := DB time – Parse Time – Connect Time
                            := (DB CPU – Parse CPU) + Execute Queue Time

         Execute阶段基本涉及buffer pool,disk,部分会涉及到row cache 和shared pool,相对而言比较parse而言会复杂一些。

        在执行阶段,LIO和PIO是极好的吞吐量指标,LIO/s表示系统的运行压力。RT Per LIO,每个Per LIO的响应时间则表示每个LIO的响应时间成本, 而LIO/rows,也就是获取每行需要多少个LIO和PIO则是基本衡量执行阶段是否消耗过多资源的一个基本判断。

        时间响应中:无论是System,Session还是SQL,时间响应部分Oracle都做了相对完善的采集,我们只要引用即可。
        
        Execute阶段主要的Queue Time:    
        cache buffer chain
        buffer busy waits
        
        为了使Execute高效运转,我们首选需要保证参与的各个部件工作正常,相关指标基本可以表示相关部件的正常与否:

        Execute CPU/LIO:每个LIO的CPU消耗时间,必须保证其处于CPU和内存系统的正常运行范畴之内。任何其他值都表示CPU和内存系统异常或者可能性的CPU季度繁忙。
        CPU ratio,CPU Queue,Memory swap:这两个指标和Execute CPU/LIO保证CPU和相关内存系统是正常运作的。
        free buffer waits:该指标保证buffer cache的大小是被保障的。

        RT/PIO:该指标表示磁盘系统是正常的,任何超过磁盘正常处理能力的值都表示磁盘系统异常,可能是硬件问题,配置问题或者负载压力过大。
        磁盘系统的辅助性指标:IO ratio,IO Queue, IO Serv time,IO Wait TIme

      降低Execute Time主要从以下几点考虑:
       (1)、首先要保证涉及部件运行正常,如果不正常,则做响应调整。
      (2)、如果LIO和PIO均在正常范畴之内,表明Concurrent Queue或者某个部件出现问题,可以通过降低冲突的思路方向进行。
      (3)、如果LIO或者PIO已经超越正常范畴,达到性能突变曲线,则需要降低LIO或者PIO。

       基于LIO的吞吐量响应曲线衡量,可以使我们简单的通过观察相关指标获得优化方向,大方向正确了,达到优化目标就不远了。

分享 转发
TOP
发新话题 回复该主题