代码之家  ›  专栏  ›  技术社区  ›  FrustratedWithFormsDesigner

Oracle-从v$session_longops定时采样

  •  1
  • FrustratedWithFormsDesigner  · 技术社区  · 14 年前

    我试图跟踪一些运行太慢的过程的性能(并且似乎一直在变慢)。我正在使用v$session_longops跟踪已完成的工作量,我有一个查询( sofar/((v$session_longops.LAST_UPDATE_TIME-v$session_longops.start_time)*24*60*60) )这告诉我工作完成的速度。

    我想能够做的是捕捉工作的完成速度和随着时间的变化。现在,我只是手动重新执行查询,然后复制/粘贴到Excel。不是很理想,尤其是当电话铃响或其他事情发生时,会中断我的采样频率。

    有没有一种方法可以让脚本在SQL*PLUS中运行查询evern n 秒,将结果假脱机到一个文件,然后继续执行此操作直到作业结束?

    (Oracle 10g)

    2 回复  |  直到 14 年前
        1
  •  3
  •   Gary Myers    14 年前

    Tanel Poder的Snapper script 在积极监控绩效方面做得很好。 它有参数用于

    <seconds_in_snap> - the number of seconds between taking snapshots
    <snapshot_count>  - the number of snapshots to take ( maximum value is power(2,31)-1 )
    

    它使用pl/sql和对dbms-lock.sleep的调用

        2
  •  1
  •   Vadim K.    14 年前

    如果您可以使用运行pl/sql而不是SQL*plus脚本,那么可以考虑使用Oracle调度程序。见章节 26 , 27 28 Oracle Database Administrator's Guide .