简单介绍:
1.A SQL tuning set (STS) is a database object that includes one or more SQL statements along with their execution statistics and execution context, and could include a user priority ranking. You can load SQL statements into a SQL tuning set from different SQL sources, such as AWR, the shared SQL area, or customized SQL provided by the user. An STS includes
2. SQL Performance Analyzer
You can use the SQL Performance Analyzer to analyze the impact on SQL performance of any type of system changes, including:
■ Database upgrade
■ Configuration changes to the operating system or hardware
■ Schema changes
■ Changes to database initialization parameters
■ Refreshing optimizer statistics
■ SQL tuning actions
-------------------------------------------------------------------------------------------------------------------------------------------
SQL tuning set 可以基于Cursor Cache, queries with a specific query string, AWR Snapshots, AWR Baseline, another SQL Tuning Set. 生成 
本文模拟通过两次取基于AWR Snapshots生成的SQL Tuning Set,利用SQL Performance Analyzer对比sql性能。这两次之间只模拟了参数修改。

--1.Create a SQL Tuning Set 1:
BEGIN dbms_sqltune.create_sqlset('DJANGO_SET1'); END;
--Load SQL into the STS(From AWR Snapshots) 
select snap_id, begin_interval_time, end_interval_time from dba_hist_snapshot order by 1;--取snap_idcd
DECLARE
CUR SYS_REFCURSOR;
BEGIN
OPEN CUR FOR
SELECT VALUE(P)
FROM TABLE(DBMS_SQLTUNE.SELECT_WORKLOAD_REPOSITORY(BEGIN_SNAP => 84,
END_SNAP   => 115)) P;
DBMS_SQLTUNE.LOAD_SQLSET('DJANGO_SET1', CUR);
CLOSE CUR;
END;
/
--2.Create a SQL Tuning Set 2:
BEGIN dbms_sqltune.create_sqlset('DJANGO_SET2'); END;
--Load SQL into the STS(From AWR Snapshots) 
select snap_id, begin_interval_time, end_interval_time from dba_hist_snapshot order by 1;--取snap_id参考
DECLARE 
CUR SYS_REFCURSOR;
BEGIN
OPEN CUR FOR
SELECT VALUE(P)
FROM TABLE(DBMS_SQLTUNE.SELECT_WORKLOAD_REPOSITORY(BEGIN_SNAP => 93,
END_SNAP   => 123)) P;
DBMS_SQLTUNE.LOAD_SQLSET('DJANGO_SET2', CUR);
CLOSE CUR;
END;
/

--3.创建sql spa 分析任务

DECLARE
ANAME VARCHAR2(30);
BEGIN
ANAME := 'compare_2sets';--compare_s2s
aname :=DBMS_SQLPA.CREATE_ANALYSIS_TASK(TASK_NAME => ANAME);
DBMS_OUTPUT.put_line(aname);
END;
/

--4.执行如下分析任务DJANGO_SET1,官方如是说:The content of the SQL tuning set will not be duplicated by the SQL Performance Analyzer task. Instead, a reference to the SQL tuning set is recorded in association to the new SQL trial

BEGIN
DBMS_SQLPA.EXECUTE_ANALYSIS_TASK(TASK_NAME           => 'compare_2sets',
EXECUTION_TYPE   => 'convert sqlset',
EXECUTION_NAME   => 'third trial',
EXECUTION_PARAMS => DBMS_ADVISOR.ARGLIST('sqlset_name',
'DJANGO_SET1',
'sqlset_owner',
'HNYD'));
END;
/

--5.同上。DJANGO_SET1

BEGIN
DBMS_SQLPA.EXECUTE_ANALYSIS_TASK(TASK_NAME           => 'compare_2sets',
EXECUTION_TYPE   => 'convert sqlset',
EXECUTION_NAME   => 'fourth trial',
EXECUTION_PARAMS => DBMS_ADVISOR.ARGLIST('sqlset_name',
'DJANGO_SET2',
'sqlset_owner',
'HNYD'));
END;
/

--6.比较这两个SQL trials(SQL tuning sets)

BEGIN
DBMS_SQLPA.EXECUTE_ANALYSIS_TASK(TASK_NAME        => 'compare_2sets',
EXECUTION_TYPE   => 'compare',
EXECUTION_NAME   => 'comparison',
EXECUTION_PARAMS => DBMS_ADVISOR.ARGLIST('workload_impact_threshold',
0,
'sql_impact_threshold',
0));
END;
/

--7.结果获取

SELECT DBMS_SQLPA.REPORT_ANALYSIS_TASK('compare_2sets',
'HTML',
'TYPICAL',
'ALL',
NULL,
100,
NULL,
NULL,
NULL)
FROM DUAL;

结果展示:

后记:可以根据报告,给参数修改、升级、配置变更、系统迁移等带来的影响做参考,对sql等做相应优化。
本处传参数没有用到比较维度(Comparison Metric),默认是ELAPSED_TIME。
可比较维度:elapsed_time (default),cpu_time, buffer_gets, disk_reads, direct_writes, and optimizer_cost.,参考如下方式指定。

DBMS_ADVISOR.ARGLIST('sqlset_name',  DJANGO_SET1', 'sqlset_owner', 'HNYD', 'comparion_metric', 'buffer_gets');

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/27349469/viewspace-2029270/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/27349469/viewspace-2029270/

利用SPA(SQL Performance Analyzer)对比两个SQL Tuning Set相关推荐

  1. SQL Performance Analyzer SPA常用脚本汇总

    SPA常用脚本汇总 附件为 一个SPA报告 spa_buffergets_summary SQL 性能分析器 SQL Performance Analyzer SPA Oracle Database ...

  2. Python语言学习:利用pandas对两列字段元素求差集(对比两列字段所有元素的异同)

    Python语言学习:利用pandas对两列字段元素求差集(对比两列字段所有元素的异同) 目录 利用pandas对两列字段元素求差集(对比两列字段所有元素的异同) 输出结果 实现代码 利用pandas ...

  3. python argparse 和opencv模块的组合使用_如何利用Python3和OpenCV对比两张图片的不同,提取差异性...

    如何利用Python3和OpenCV对比两张图片的不同,提取差异性 导言:通过机器视觉来计算两个图片之间的差异性,可以快速有效辨别文件.图片是否被篡改,也能帮助用户轻松识别钓鱼网站,确保财产安全. 一 ...

  4. 通过sql对比两个表的一致性

    文章目录 一. 背景 二. 对比方案 1. 对比两表的数据量是否一致 2. MINUS对比 参考资料 一. 背景 项目中需要对两张结构一样的表进行对比,看两张表的数据是否一致. 二. 对比方案 1. ...

  5. 如何利用Python3和OpenCV对比两张图片的不同,提取差异性

    如何利用Python3和OpenCV对比两张图片的不同,提取差异性 导言:通过机器视觉来计算两个图片之间的差异性,可以快速有效辨别文件.图片是否被篡改,也能帮助用户轻松识别钓鱼网站,确保财产安全. 一 ...

  6. Excel 神操作,利用公式对比两个不同的表,替换内容(保姆级教程)

    Excel表 使用公式对比两表格,替换内容 场景:现在有两份Excel表,A表和B表(国际化翻译的表).A表和B表是对应关系,A表中的第一列在B表中有相同的(如下图),需要将B表的翻译内容替换到A表中 ...

  7. 深度对比Oracle与SQL Server

    本译文采用知识共享署名-非商业性使用-相同方式共享 3.0 Unported许可协议发布,转载请保留此信息 译者:马齿苋 | 链接:http://www.dbabeta.com/2010/oracle ...

  8. 怎么对比两个mysql数据库_[实战]如何对比两个数据库之间的变化

    目录 前言 相信很多撸友都曾经接到过下面这样一个工作: 要求对比两个不同版本数据库之间的变化,并对统计该变化对已有系统的影响. 并根据影响,请检索所有现行系统相关的存储过程,作出相应的修改. 或许最终 ...

  9. SQL与Oracle对比

    关键字: SQL,ORACLE 分类: 个人专区 密级: 公开 (评分:★★★★ , 回复: 16, 阅读: 641) »» 本人平时比较沉默,但朋友们都说我很疯狂-疯狂地学习.疯狂地工作.很久就 ...

  10. Java对比两张Excel表的数据,java对比两个excel或者一张excel和数据库的一张表的数据是否相同,两张excel表格匹配相同的数据库...

    excel自动从数据库匹配相应的数据 vlookup函数:vlookup(lookup_value,table_array,col_index_num,[range_lookup]) 第一个:look ...

最新文章

  1. 使用jtest工具压测Apache Traffic Server
  2. 4G EPS 中的 FDD/TDD 无线帧
  3. javascript获取网页URL地址及参数等
  4. python 科学计算基础教程电子版-Python 科学计算基础 (整理)
  5. 北京内推 | 微软亚洲互联网工程院(STCA)招聘NLP科研实习生
  6. Flink 与 TiDB 联合发布实时数仓最佳实践白皮书
  7. WPF 模仿QQ音乐首页歌单效果
  8. C语言中枚举enum的用法
  9. jquery笔记一:下载安装、语法、选择器、遍历选择元素的方法、jQuery动画
  10. netty发送数据_看完这篇还不清楚Netty的内存管理,那我就哭了
  11. 随想录(提高代码质量的几个工具)
  12. mysql盲注ascii_[翻译]关于通过对8bit的ascii做右位移提高mysql盲注效率
  13. 多种方式描述4选1数据选择器
  14. 大B公司自己做AI,都是九死一生——To B AI 平台的1.0 模式,已几乎宣告失败?...
  15. 5V升压8.4V芯片电路图,5V充电7.4V电池
  16. 浙大PAT甲级题目1061-1080代码详细解答|标准答案|C++语言|浙软机试
  17. SharePoint CAML Query小结
  18. Codeforces Round #622 (Div. 2) C2. Skyscrapers (hard version)-单调栈+dp
  19. excel取消工作表保护 获取原始密码
  20. syswow64删除文件_win7系统Syswow64文件夹有什么作用?

热门文章

  1. 2021密码应用技术白皮书
  2. vue 基于网易云API实现二维码的登录
  3. 一文带你详细了解光纤传感器
  4. 厨房电器机械EN60335-2-14检测标准及项目
  5. android 设置定位服务,Android 定位服务和位置权限
  6. layui表头样式_Layui表格好看样式
  7. keil兼容51单片机和arm
  8. 【MATLAB】基本绘图函数(涵盖所有基本绘图指令)
  9. 西南科技大学OJ题 11 And 11! 0259
  10. 代码整洁之道-编写 Pythonic 代码