科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道Oracle 10g数据库中分析响应时间(5)

Oracle 10g数据库中分析响应时间(5)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

Oracle10g数据库的历史数据机制允许DBA们按时查看对响应时间趋势的分析,这将有助于DBA们确定事务/系统的高峰时期,更好的定位那些拉长批处理周期和ETL作业的进程和SQL语句。

作者:shanyuan 来源:赛迪网技术社区 2007年9月13日

关键字: 响应时间 数据库 ORACLE Oracle 10g

  • 评论
  • 分享微博
  • 分享邮件
select sess_id,

    username,

    program,

    wait_event,

    sess_time,

    round(100 * (sess_time / total_time),2) pct_time_waited

    from

    (select a.session_id sess_id,

    decode(session_type,'background',session_type,c.username) username,

    a.program program,

    b.name wait_event,

    sum(a.time_waited) sess_time

    from sys.v_$active_session_history a,

    sys.v_$event_name b,

    sys.dba_users c

    where a.event# = b.event# and

    a.user_id = c.user_id and

    sample_time > '22-JAN-07 12:00:00 AM' and

    sample_time < '22-JAN-07 05:00:00 AM' and

    b.wait_class = 'User I/O'

    group by a.session_id,

    decode(session_type,'background',session_type,c.username),

    a.program,

    b.name),

SQL语句响应时间分析

在Oracle9i数据库中查看SQL语句的响应时间就变得比较容易了,现在在Oracle10g中,DBA们拥有更多的工具可以帮助他们跟踪效率低下的数据库代码。以前可以用来查询的视图是V$SQLAREA,从Oracle9i开始,这个视图增加了ELAPSED_TIME和CPU_TIME两个列,这极大的有助于去确定实际用户的SQL语句的执行经历。(如果除以执行的次数列EXECUTIONS,那么将得到平均每次执行这个SQL语句所用的平均时间)在Oracle10g数据库中,V$SQLAREA视图中增加了6个新的和等待以及时间相关的列:

APPLICATION_WAIT_TIME

     CONCURRENCY_WAIT_TIME

     CLUSTER_WAIT_TIME

     USER_IO_WAIT_TIME

     PLSQL_EXEC_TIME

     JAVA_EXEC_TIME

这些新的列有助于确定很多信息,例如:一个存储过程中花费在PL/SQL代码和标准SQL执行上的时间的对比,以及一个SQL语句经历的任何详细的用户I/O等待。例如:下面的SQL语句能帮助找到前5位用户I/O等待最高的SQL语句:

select * from

    (select sql_text,

    sql_id,

    elapsed_time,

    cpu_time,

    user_io_wait_time

    from sys.v_$sqlarea

    order by 5 desc)

    where rownum < 6;

    SQL_TEXT SQL_ID ELAPSED_TIME CPU_TIME USER_IO_WAIT_TIME

    DECLARE job BINARY_INTEGER := :job; 
    next_date DATE := :mydate; broken BOOLEAN : 
    6gvch1xu9ca3g 11077912 747091 8593479

    select /*+ index(idl_ub1$ i_idl_ub11) +*/ piece#,
    length,piece from idl_ub1
    $ wher cvn54b7yz0s8u 6455976 220128 6427409

    select s.synonym_name object_name, 
   o.object_type from sys.all_synonyms s, 
   s fqmpmkfr6pqyk 11814078 6958760 3189450

    select /*+ rule */ bucket, endpoint, col#, 
    epvalue from histgrm$ where obj#=:1 a db78fxqxwxt7r 
    2737680 193937 2689611

    select /*+ index(idl_ub2$ i_idl_ub21) +*/ piece#,
    length,piece from idl_ub2$ 
    where 39m4sx9k63ba2 2322664 108100 2307700
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章