利用ORACLE ADV 功能完成SQL TUNING 调优(顾问培训) “让DBA失业还是解脱?”
oracle自动判断SQL性能功能.
11G的ADV,建议.SNAPSHOT,数据集合, 存储在oracle sys $_开头的表(10几条).
创建SNAPSHOT时选择天数, 默认14天.
sql orderde by Gets.
Gets per exac每执行一次读取缓存次数.
executions 每小时执行次数(因为snapshot 每小时执行一次)
自动化调优建议.
--语句修改, rewrite.
--物理优化.
--调整索引. 想象的索引不走.
--gather, 不产生物理方面的变化, 信息采集. 自动重新当前表关联语句执行计划.
--对执行计划的固化. 提供了SQL PROFILE,与cursor绑定,将执行计划固化.效果很好.
(不需要oracle多一个对象) ==:取消固化.
如上,是adv的推荐. 提高的百分比推荐.
oracle Enterprise Mangerment.
-Data pump Export(当前数据server)/
-Original Export.(任意汇出地址,汇入更慢)
transaction执行上万秒, 看有没有阻塞的session.
active-session 几十分钟
dba -session 十几天.
阻塞与waiting.
单位是微妙. *1000 = 毫秒
如下为上机作业部分: (做一遍, 如上那些就都懂了!)
总结: 获得数据库自动推荐的tuning sql 优化建议, 包括物理, 静态等优化建议.
做完, "DBA就是失业"了?
开什么玩笑, 他们又偷懒了.
计算机追求无止境..... 偷懒混日子也是有妙招.
前文预热:
select sql_id, child_number,executions,parse_calls,loads,invalidations ,LAST_LOAD_TIME from v$sql where sql_text like 'SELECT distinct substr(l.line_name, 1, 1) || substr(l.line_nam%' order by LAST_LOAD_TIME;
单引号内的字符串是原始sql语句的部分
本次上机作业内容如下:
--
在sqlplus 中运行
select * from table(dbms_xplan.display_cursor('31b1ba01z95b1',null,'all ALLSTATS LAST'));
如果在语句运行前在sqlplus中设置
alter session set statistics_level=all;
alter session set timed_statistics=true;
执行计划的内容会更丰富,以上设置在退出该session就失效。
--1 根据sqlid执行查询计划
select * from table(dbms_xplan.display_cursor('c5pqy84v71vry',0,'all ALLSTATS LAST'));
--2 定义变量, 已完成查询计划的, 完成相应自动优化建议task任务
variable stmt_task varchar2(64);
exec :stmt_task:=sys.dbms_sqltune.create_tuning_task(sql_id=>'c5pqy84v71vry');
--3 获取当前已有优化建议的任务id
select task_id,task_name from user_advisor_tasks order by EXECUTION_START;
--4 执行相应分析处的执行计划, 获得优化建议.
exec dbms_sqltune.execute_tuning_task(task_name => 'TASK_836');
--5 查询获得相应的优化建议内容
select dbms_sqltune.report_tuning_task('TASK_836')from dual;
利用ORACLE ADV 功能完成SQL TUNING 调优(顾问培训) “让DBA失业还是解脱?”的更多相关文章
- 转-利用Oracle审计功能来监测试环境的变化
http://blog.csdn.net/luowangjun/article/details/5627102利用Oracle审计功能来监测试环境的变化 做过测试的人都应该会碰到这样的情况:测试发现的 ...
- SQL Server调优系列玩转篇(如何利用查询提示(Hint)引导语句运行)
前言 前面几篇我们分析了关于SQL Server关于性能调优的一系列内容,我把它分为两个模块. 第一个模块注重基础内容的掌握,共分7篇文章完成,内容涵盖一系列基础运算算法,详细分析了如何查看执行计划. ...
- SQL Server调优系列玩转篇二(如何利用汇聚联合提示(Hint)引导语句运行)
前言 上一篇我们分析了查询Hint的用法,作为调优系列的最后一个玩转模块的第一篇.有兴趣的可以点击查看:SQL Server调优系列玩转篇(如何利用查询提示(Hint)引导语句运行) 本篇继续玩转模块 ...
- SQL Server调优系列玩转篇三(利用索引提示(Hint)引导语句最大优化运行)
前言 本篇继续玩转模块的内容,关于索引在SQL Server的位置无须多言,本篇将分析如何利用Hint引导语句充分利用索引进行运行,同样,还是希望扎实掌握前面一系列的内容,才进入本模块的内容分析. 闲 ...
- SQL Server 调优系列玩转篇三(利用索引提示(Hint)引导语句最大优化运行)
前言 本篇继续玩转模块的内容,关于索引在SQL Server的位置无须多言,本篇将分析如何利用Hint引导语句充分利用索引进行运行,同样,还是希望扎实掌握前面一系列的内容,才进入本模块的内容分析. 闲 ...
- SQL Server 调优系列玩转篇二(如何利用汇聚联合提示(Hint)引导语句运行)
前言 上一篇我们分析了查询Hint的用法,作为调优系列的最后一个玩转模块的第一篇.有兴趣的可以点击查看:SQL Server调优系列玩转篇(如何利用查询提示(Hint)引导语句运行) 本篇继续玩转模块 ...
- SQL Server 调优系列玩转篇一(如何利用查询提示(Hint)引导语句运行)
前言 前面几篇我们分析了关于SQL Server关于性能调优的一系列内容,我把它分为两个模块. 第一个模块注重基础内容的掌握,共分7篇文章完成,内容涵盖一系列基础运算算法,详细分析了如何查看执行计划. ...
- SQL Server调优系列基础篇
前言 关于SQL Server调优系列是一个庞大的内容体系,非一言两语能够分析清楚,本篇先就在SQL 调优中所最常用的查询计划进行解析,力图做好基础的掌握,夯实基本功!而后再谈谈整体的语句调优. 通过 ...
- SQL Server调优系列基础篇(联合运算符总结)
前言 上两篇文章我们介绍了查看查询计划的方式,以及一些常用的连接运算符的优化技巧,本篇我们总结联合运算符的使用方式和优化技巧. 废话少说,直接进入本篇的主题. 技术准备 基于SQL Server200 ...
随机推荐
- 【原】SparkContex源码解读(一)
版权声明:本文为原创文章,未经允许不得转载. SparkContext(简称sc)是Spark程序的主入口,代表一个连接到Spark集群(Standalone.YARN.Mesos三种集群部署模式)的 ...
- SSE求解向量大小
float f=; __asm { mov esi, this ; vector u movups xmm0, [esi] ; first vector in xmm0 mulps xmm0, xmm ...
- ARM-Linux驱动-触摸屏驱动分析
出处:http://blog.csdn.net/geekcome/article/details/6580981 硬件平台:FL2440 内核版本:2.6.28 主机平台:Ubuntu 11.04 内 ...
- oracle 临时表学习
临时表概念 临时表就是用来暂时保存临时数据(亦或叫中间数据)的一个数据库对象,它和普通表有些类似,然而又有很大区别.它只能存储在临时表空间,而非用户的表空间.ORACLE临时表是会话或事务级别的,只对 ...
- CentOS下恢复Firefox的复制等功能
在CentOS下使用firefox编辑博客时,我发现无法使用复制粘帖功能,可用如下两种方法恢复(方法一已验证可行): 方法一: 找到user.js所在的目录,Linux下的user.js所在目录为Un ...
- (转载)Excel文档保存的时候,提示“文档未保存”
亲测,成功搞定 Excel文档保存的时候,提示“文档未保存”? 先打开你需要处理的excel,然后打开工具栏--宏--录制新宏--确定--停止录制宏--宏-宏--编辑--复制以下程序Sub 恢复保存( ...
- javascript获取元素的计算样式
使用css控制页面有4种方式,分别为行内样式(内联样式).内嵌式.链接式.导入式. 行内样式(内联样式)即写在html标签中的style属性中,如<div style="width:1 ...
- MySQL启动和关闭服务命令
MySQL启动和关闭服务命令 1.启动服务命令 net start mysql 2.关闭服务命令 net stop mysql
- [Javascript] Object.freeze() vs Object.seal()
let person = { firstName: "Zhentian", lastName: "Wan" }; /*Object.freeze() makes ...
- 从 setNeedsLayout 说起
本文从 setNeedsLayout 这个方法说起,分享与其相关的 UIKit 视图交互.使用场景等内容. UIKit 为 UIView 提供了这些方法来进行视图的更新与重绘: public func ...