Oracle10g中如何分析响应时间

时间:2007-02-12 15:22:00   来源:  作者:  点击:次  出处:技术无忧
关键字:Oracle 数据库


    如果响应时间不在是那么渴求,那么DBA就会想了解究竟是什么类型的用户活动让数据库的响应变得如此的慢,在Oracle10g数据库之前,这些信息 是比较难获取的,但是现在就变得非常容易,执行如下查询:

    select case db_stat_name

    when 'parse time elapsed' then

    'soft parse time'

    else db_stat_name

    end db_stat_name,

    case db_stat_name

    when 'sql execute elapsed time' then

    time_secs - plsql_time

    when 'parse time elapsed' then

    time_secs - hard_parse_time

    else time_secs

    end time_secs,

    case db_stat_name

    when 'sql execute elapsed time' then

    round(100 * (time_secs - plsql_time) / db_time,2)

    when 'parse time elapsed' then

    round(100 * (time_secs - hard_parse_time) / db_time,2)

    else round(100 * time_secs / db_time,2)

    end pct_time

    from

    (select stat_name db_stat_name,

    round((value / 1000000),3) time_secs

    from sys.v_$sys_time_model

    where stat_name not in('DB time','background elapsed time',

    'background cpu time','DB CPU')),

    (select round((value / 1000000),3) db_time

    from sys.v_$sys_time_model

    where stat_name = 'DB time'),

    (select round((value / 1000000),3) plsql_time

    from sys.v_$sys_time_model

    where stat_name = 'PL/SQL execution elapsed time'),

    (select round((value / 1000000),3) hard_parse_time

    from sys.v_$sys_time_model

    where stat_name = 'hard parse elapsed time')

    order by 2 desc;

    DB_STAT_NAME TIME_SECS PCT_TIME

---------------------------------------------------------------- ---------- ----------

    sql execute elapsed time 65.644 89.7

    hard parse elapsed time 26.661 36.43

    PL/SQL execution elapsed time 12.766 17.44

    PL/SQL compilation elapsed time 6.353 8.68

    soft parse time 2.15 2.94

    connection management call elapsed time 1.084 1.48

    hard parse (sharing criteria) elapsed time 0.448 0.61

    repeated bind elapsed time 0.026 0.04

    failed parse elapsed time 0.009 0.01

    hard parse (bind mismatch) elapsed time 0.002 0

    RMAN cpu time (backup/restore) 0 0

    inbound PL/SQL rpc elapsed time 0 0

    sequence load elapsed time 0 0

    Java execution elapsed time 0 0

    failed parse (out of shared memory) elapsed time 0 0
 可以在V$SYS_TIME_MODEL视图中找到相应的主要花费时间处理的部分,然后就可以根据这些来对数据库进行相应的调整。

 
    除了活动时间,DBA也还想知道整体的等待时间。在Oracle10g数据库之前,DBA必须查看单独的等待事件来找出等待和瓶颈,现在Oracle10g数据库提供一个等待的概要机制。

    select WAIT_CLASS,

    TOTAL_WAITS,

    round(100 * (TOTAL_WAITS / SUM_WAITS),2) PCT_WAITS,

    ROUND((TIME_WAITED / 100),2) TIME_WAITED_SECS,

    round(100 * (TIME_WAITED / SUM_TIME),2) PCT_TIME

    from

    (select WAIT_CLASS,

    TOTAL_WAITS,

    TIME_WAITED

    from V$SYSTEM_WAIT_CLASS

    where WAIT_CLASS != 'Idle'),

    (select sum(TOTAL_WAITS) SUM_WAITS,

    sum(TIME_WAITED) SUM_TIME

    from V$SYSTEM_WAIT_CLASS

    where WAIT_CLASS != 'Idle')

    order by 5 desc;

    WAIT_CLASS TOTAL_WAITS PCT_WAITS TIME_WAITED_SECS PCT_TIME

想自己动手组装电脑吗?想了解市场行情吗?来技术无忧DIY资讯一切烦脑都没有!


文章评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面

特别推荐
300x250广告位招租