[20150705]从AWR抽取有问题的sql语句.txt

简介: [20150705]从AWR抽取有问题的sql语句.txt --闲着没事,写一个脚本从awr数据里面抽取有问题的sql语句,主要我不想看awr报表,而优化80%的问题集中在sql语句,实际上可能更多.

[20150705]从AWR抽取有问题的sql语句.txt

--闲着没事,写一个脚本从awr数据里面抽取有问题的sql语句,主要我不想看awr报表,而优化80%的问题集中在sql语句,实际上可能更多.
--另外我看报表主要集中在9-11点,下午3-5点这些报表,这样可能漏调一些晚上的一些schedule,job等相关sql语句的优化.

--注意一定要在环境变量中设置
--NLS_DATA_FORMAT='YYYY/MM/DD HH24:MI:SS'

prompt
prompt @deltasqlid begin_time end_time count
prompt for example :  @deltasqlid '2015/06/24' '2015/06/25' 4
prompt

select * from (  SELECT sql_id, event, COUNT (*)
    FROM DBA_HIST_ACTIVE_SESS_HISTORY
   WHERE     sql_id IS NOT NULL
         AND event IS NOT NULL
         AND SAMPLE_TIME BETWEEN '&&1' AND '&&2'
GROUP BY sql_id, event
having count(*)>=&&3
ORDER BY 3 DESC)
union all
  select * from (
  SELECT sql_id, nvl(event,'on cpu'), COUNT (*)
    FROM DBA_HIST_ACTIVE_SESS_HISTORY
   WHERE     sql_id IS NOT NULL
         AND event IS NULL
         AND SAMPLE_TIME BETWEEN '&&1' AND '&&2'
GROUP BY sql_id, event
having count(*)>=&&3
ORDER BY 3 DESC) where rownum

--说明: event is NULL 我单独分开,实际上也许是重点,对我们的生产系统,因为我们的机器内存很大.基本没有物理读的情况.
--另外后面的count可以理解为时间,应该x10,对应的单位应该是秒.
--因为v$active_session_history是1秒取样1次,而DBA_HIST_ACTIVE_SESS_HISTORY是10秒取样,这样算出来的count x 10,对应的应该是这个语句的
--花在对应event的秒数,不知道我理解是否正确.
--我看了基本符合我在awr报表看到的结果.

目录
相关文章
|
SQL XML Oracle
Mybatis动态SQL语句查询,实现一个参数 可查询多个字段。
Mybatis动态SQL语句查询,实现一个参数 可查询多个字段。
566 0
Mybatis动态SQL语句查询,实现一个参数 可查询多个字段。
|
7月前
|
SQL Oracle 关系型数据库
mysql和oracle 命令行执行sql文件 数据库执行sql文件 执行sql语句
mysql和oracle 命令行执行sql文件 数据库执行sql文件 执行sql语句
87 0
|
8月前
|
SQL JSON atlas
实时计算 Flink版产品使用合集之SQL Server CDC是否支持抽取SQL Server视图
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
SQL DataWorks 数据处理
在DataWorks中,您可以将抽取数据的SQL和数据集成任务放在一起
在DataWorks中,您可以将抽取数据的SQL和数据集成任务放在一起
76 4
|
SQL 存储 关系型数据库
MySQL的第一篇文章——了解数据库、简单的SQL语句
MySQL的第一篇文章——了解数据库、简单的SQL语句
|
SQL
java202304java学习笔记第六十六天-ssm-mybatis中dao层实现-抽取sql片段
java202304java学习笔记第六十六天-ssm-mybatis中dao层实现-抽取sql片段
70 0
|
SQL 程序员 开发工具
【Sql Server】基础之分组查询重复出现多条记录的SQL语句,以及group by和having、min函数运用
基础之分组查询重复出现多条记录的SQL语句,以及group by和having、min函数运用
556 0
【Sql Server】基础之分组查询重复出现多条记录的SQL语句,以及group by和having、min函数运用
SQL 查询表中每门课程成绩最好的前n名学生 优于group by语句的方法
SQL 查询表中每门课程成绩最好的前n名学生 优于group by语句的方法
SQL 查询表中每门课程成绩最好的前n名学生 优于group by语句的方法
|
SQL 数据库 数据安全/隐私保护
使用SQL语句 查询电话号码 加密显示
使用SQL语句 查询电话号码 加密显示
345 0
使用SQL语句 查询电话号码 加密显示
|
SQL 关系型数据库 MySQL
SQL语句优化方法
SQL语句优化方法
182 0