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
sql整体优化的五种工具的更多相关文章
- 善用性能工具进行SQL整体优化
SQL优化是一个复杂的工程,首先要讲究从整体到局部.今天我们首先学习关于数据库整体优化都有哪些性能工具,接着分析这些工具的特点,并结合案例进行探索,最后再进行总结和思考. 总体学习思路如下图所示: 都 ...
- SQL高级优化(五)之执行计划
一.explain 执行计划:在MySQL中可以通过explain关键字模拟优化器执行SQL语句,从而知道MySQL是如何处理SQL语句的. explain:MySQL执行计划的工具,查看MySQL如 ...
- JAVA性能优化的五种方式
一,JAVA性能优化之设计优化 设计优化处于性能优化手段的上层.它往往须要在软件开发之前进行.在软件开发之前,系统架构师应该就评估系统可能存在的各种潜在问题和技术难点,并给出合理的设计方案,因为软件设 ...
- sql语句优化的30种方法
转载于:https://www.cnblogs.com/Little-Li/p/8031295.html 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的 ...
- 深入浅出数据仓库中SQL性能优化之Hive篇
转自:http://www.csdn.net/article/2015-01-13/2823530 一个Hive查询生成多个Map Reduce Job,一个Map Reduce Job又有Map,R ...
- 【SQL系列】深入浅出数据仓库中SQL性能优化之Hive篇
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[SQL系列]深入浅出数据仓库中SQL性能优化之 ...
- 小米正式开源 SQL 智能优化与改写工具 SOAR
近日,小米正式宣布开源 SOAR. 截至今日,该项目已经获得了 350 个「star」以及 44 个「fork」(GitHub项目地址:https://github.com/XiaoMi/soar) ...
- 503是一种HTTP状态码。英文名503 Service Unavailable与404(404 Not Found)是同属一种网页状态出错码。前者是服务器出错的一种返回状态,后者是网页程序没有相关的结果后返回的一种状态,需要优化网站的时候通常需要制作404出错页以便网站整体优化。
goldCat1 商城 消息 | 百度首页 新闻网页贴吧知道音乐图片视频地图百科文库 进入词条搜索词条帮助 近期有不法分子冒充官方收费编辑词条,百度百科严正声明:百科词条人人可编辑,词条创建和修改均免 ...
- 如何剔掉 sql 语句中的尾巴,我用 C# 苦思了五种办法
一:背景 1. 讲故事 这几天都在修复bug真的太忙了,期间也遇到了一个挺有趣bug,和大家分享一下,这是一块sql挺复杂的报表相关业务,不知道哪一位大佬在错综复杂的 嵌套 + 平行 if判断中sql ...
随机推荐
- scrapy的安装
python --version 2.7.12版本. 1) 首先在交互模式下测试系统是否安装lxml和OpenSSL 2) 安装lxml,apt-get install python-lxml, ...
- Delphi7使用一段时间后抽风提示注册
今天在单位用电脑接自己的移动硬盘,一打开资源管理器就卡死,删除硬盘总是提示用程序在使用,反复试了几次,老样子.很是窝火.干脆直接关机电脑,桌面上还有开着的Delphi编译器,重新开机!开机后一打开编译 ...
- Python 第五阶段 学习记录之----ORM
ORM: orm英文全称object relational mapping,就是对象映射关系程序,简单来说我们类似python这种面向对象的程序来说一切皆对象,但是我们使用的数据库却都是关系型的,为了 ...
- UValive4195 Heroes of Money and Magic
斜率优化 想骂人了,马格吉最后调了半小时 TMD造数据的人是SB吧? 我写 while(scanf("%d%d",&n,&m)!=EOF&&n) ...
- 解决 Bash On Windows 下载慢或无法下载的问题
解决 Bash On Windows "无法从 Windows 应用商店下载.请检查网络连接."的问题 Fiddler和Bash On Windows 源离线压缩包:http:// ...
- 《CSS世界》读书笔记(九)
<!-- <CSS世界>张鑫旭著 --> content内容生成技术 1. content 辅助元素生成 清除浮动: .clear:after { content: ''; d ...
- 输出UTF-8-BOM格式的文件
File localDir = new File(localPath); if(!localDir.exists()){ localDir.mkdirs(); } File file = new Fi ...
- 5、Kafka生产过程分析
1.写入方式 producer采用推(push)模式将消息发布到broker, 每条消息都被追加(append)到分区(patition)中,属于顺序写磁盘(顺序写磁盘效率比随机写内存要高,保障kaf ...
- Python assert断言
assert断言:指定某个对象判断类型,不成立则报错. 使用环境 :接下来程序的执行,如果依赖前面的类型,不能报错的情况下使用. assert type(obj) is str print(&quo ...
- Linux配置中文输入法(搜狗输入法)
一.基础知识 在原生ubuntu14.04英文环境系统中只有IBus拼音,真的好难用.由于搜狗输入法确实比Linux系统下其它的中文输入法都要好用得多,所以我决定在我的Ubuntu 14.04系统中安 ...