情况描述:如何在oracle数据库中找到一个日志,这个日志能够看到所有 执行超过一秒的语句或者包又或者是过程?
或者是如何在oracle数据库中找到执行都超过一秒的语句.

解决方案 »

  1.   

    这个最简单的方法是打一个 AWR 报告出来,有 TOP * N 的语句。
      

  2.   

    方法如下:
    1、运行,cmd。然后进入到 oracle的安装目录,这里以我的电脑为例: E:\app\Administrator\product\11.2.0\dbhome_1\
    2、再进入到下面的目录 RDBMS\ADMIN。确保E:\app\Administrator\product\11.2.0\dbhome_1\RDBMS\ADMIN 下面有 awrrpt.sql这个文件
    3、输入 sqlplus ,然后以管理员身份登录。
    4、输入命名:@awrrpt
    5、开始按提示操作,首先是选择要生成的awr报告的类型,可以选择text或html类型。这里我们以 html类型为例。输入 html,回画
    6、选择要生成的报告的日期是在多少天以前记录,输入1,则表示要生成今天0点开始到现在之内的某个时间段的报告,输入2,则表示满意生成昨天0点开始到现在的某个时间段的报告。以此类推。缺省记录最近7天,这里输入法为示例。
    7、输入天数后,界面会输出一个时间段的表格,每个时间点都对应一个snapId,间隔时间为oracle默认是1个小时,接下来,输入要生成报告的时间开始点应的snap id,这里我输入3318, 然后再输入结束点对应的snap id,这里输入 3320.
    8、接着要求输入生成报告的名字,系统会自动生成一个输入的名字并会提示信息中显示出来。如果使用输入名称。则不用输入任何内容。直接回画即可。到此。系统就会自动生成一张awr的报告。
      

  3.   

    AWR 报告你拿到手之后,用 IE 或  chrome 打开 。 找到 top SQL ,那里有时间的记录、CPU的记录、IO 的记录、等待事件的记录等等。都可以看到。
      

  4.   

    select sql_text from dba_hist_sqltext
    where sql_id in(select sql_id from dba_hist_sqlstat where  ELAPSED_TIME_DELTA>=10000000)
      

  5.   

    awrk能看出超过1秒有哪些语句。