奋斗的Fly

sql整体优化的五种工具

1.AWR报告

  1.1 awr是什么?

  它是关注于数据库整体性能状况,类比于我们去医院看病的体检报告,只是用一些指标对数据库做了一个判断。

  1.2awr怎么获取

  awr报告的获取有两种方式:

  一、直接获取

    命令:"@?/rdbms/admin/awrrpt.sql"

    

    上图可看出:当前使用的数据库实例是orcl,然后输入需要离最近天数的数据库的数据,直接按回车是将数据库所有的信息

    

    上图所示就是查看的上次我数据库运行的一天的snapid以及started时间

    然后再进行输入对应的上面的开始断点和结束断点

    

    此时就生成了名字为awrrpt_1_265_269.html的html格式的文本文件,文件生成路径在当前路径(你进入sqlplus操作时的当前路径);默认如下图:

    

    打开这个文件的内容如下:

    

    内容很多,可以自行进行操作

    对于awr生成的报告主要关注以下五个核心点:

    一、load profile

    load_profile(系统指示性能的总参数,例如:每秒产生的事务数,正常情况200上下,超一千表示非常繁忙,对应的Redo size中每个事务产生的日志长度也可以在一定程度上看出是                 每次分别提交还是批量提交)

    我这个是自己本子上的oracle很久没使用过了,如需实验可以在网上找资料这个应该很多,在这里主要想说明的是对于这个指标我们的关注点

    二、efficiency percentages(命中率指标)

    这里指的是SGA区的命中率,如果在oltp中低于90%,可能存在未使用绑定变量

    可以参照这个网址进行查看:http://blog.itpub.net/23002319/viewspace-1328016/

    三、top 5 events(可以清楚的看到当前系统受阻塞影响最大的前五个事件)

    主要看的是,前五个时间中暂用的db时间

    四、SQL Statistics

    这里面可以看到对应的每个sql的详细信息,可以根据每个sql的执行时长,最简单的方法就是直接优化那些执行时间最长的sql

    五、segment_statistics

    这个可以清楚的对于繁忙的sql落在那个段表进行很好的定位和判断,从而进行优化

  二、命令获取   

select output from table(dbms_workload_repository.awr_report_html
(v_dbid, v_instance_number,v_min_snap_id,v_max_snap_id
));

  对应的参数含义如下:

  v_dbid:数据库主机标识符(可通过select sys_guid() from dual获取

  v_instance_number:标识实例

  V_min_snap_id:设置的初始断点时间(断点之间的范围可以通过输入命令后,在输入num_day时直接回车,通过查看snapid可以确定直接需要的时间段之间的awr报告)

  V_min_snap_id:设置的初始断点时间(断点之间的范围可以通过输入命令后,在输入num_day时直接回车,通过查看snapid可以确定直接需要的时间段之间的awr报告)

  生成的报告文件都在启动sql/plus时的当前路径下

 二、ASH报告

  ASH是针对数据库中的等待事件与那些Sql具体对应,相对于awr更加的具体

  ash的获取同样有两种方式:

  1.直接获取

  "@?/rdbms/admin/ashrpt.sql"

  按照提示对应的格式输入对应需要取样的开始时间和结束时间即可生成

  ash表需要关注的点:

  就是看sql的执行和那些等待事件向关联:sql text和event

  

  2.命令获取

  select output from table(dbms_workload_repository.ash_report_html(dbid,inst_num,l_btime,l_etime));

  三、ADDM

  Oracle给出的一些建议:包含整体的建议和局部的建议

  报告的获取:

  直接获取:"@?/rdbms/admin/addmrpt.sql"

  四、AWRDD

  针对不同时段的性能的一个比对报告:比如比较今天9点到10点和昨天9点到10点的的loadfile的数据,可以根据这个来判断是否在这个时间段有什么特别的事情发生

  获取命令:@?/rdbms/admin/awrddrpt.sql

  五、AWRSQ

  具体某个Sql的执行计划,相对于之前的报告可以看到更多更细的东西,可以保存多个执行。

  直接获取命令:@?/rdbms/admin/awrsqrpt.sql

 

posted on 2018-02-14 17:12  奋斗的Fly  阅读(4592)  评论(0编辑  收藏  举报

导航