巧用DISPLAY_AWR函数与dba_hist_sqlstat结合查询SQL语句在指定节点指定时间范围内的历史执行计划
plan_table_output like ('Planhash value%');
1
|
Plan hash value: 6178145
|
2
|
Plan hash value: 2354817963
|
|
Plan hash value: 3990363694
|
、查到8月5日9:00—09:30的 snap_id
dbid
|
snap_id
|
instance_number
|
begin_interval_time
|
end_interval_time
|
19948XXXX2
|
|
1
|
05-8月 -13 09.00.09.903
|
05-8月 -13 09.30.10.113
|
19948XXXX2
|
|
2
|
05-8月 -13 09.00.09.786
|
05-8月 -13 09.30.10.502
|
、通过
dbms_xplan.display_awr
与包含snap_id、instance_number信息的视图关联得到8月5日9:00—09:30时SQL_ID为
bj75p9188y410
的执行计划:
table
(
dbms_xplan.display_awr
(
db_id
=>
19948XXXX2
,
sql_id
=>
b.sql_id
,
plan_hash_value
=>
b.plan_hash_value
))
a;
SQL_ID bj75p9188y410
|
--------------------
|
select * from ( select distinct b.XXXX_id as
|
…… (为了信息脱敏,真实语句在此省略)
|
,'NLS_SORT=SCHINESE_XXXX'),b.XXXX_name ) where rownum <= :1
|
Plan hash value: 3990363694
|
---------------------------------------------------------------------------------------------------------------------
|
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
|
---------------------------------------------------------------------------------------------------------------------
|
| 0 | SELECT STATEMENT | | | | 315 (100)| |
|
| 1 | COUNT STOPKEY | | | | | |
|
| 2 | VIEW | | 1 | 180 | 315 (2)| 00:00:29 |
|
| 3 | SORT ORDER BY STOPKEY | | 1 | 151 | 315 (2)| 00:00:29 |
|
| 4 | HASH UNIQUE | | 1 | 151 | 314 (1)| 00:00:29 |
|
| 5 | FILTER | | | | | |
|
| 6 | NESTED LOOPS OUTER | | 1 | 151 | 313 (1)| 00:00:29 |
|
| 7 | NESTED LOOPS | | 1 | 86 | 35 (0)| 00:00:04 |
|
| 8 | TABLE ACCESS BY INDEX ROWID | LB_T_XXXX_PROVIDER | 1 | 61 | 34 (0)| 00:00:04 |
|
| 9 | INDEX RANGE SCAN | IDX_LB_T_XXXX_PROVIDER_003 | 183 | | 3 (0)| 00:00:01 |
|
| 10 | TABLE ACCESS BY INDEX ROWID | LA_XXXX | 1 | 25 | 1 (0)| 00:00:01 |
|
| 11 | INDEX UNIQUE SCAN | PK_LA_XXXX | 1 | | 0 (0)| |
|
| 12 | VIEW PUSHED PREDICATE | LB_T_XXXX | 1 | 65 | 278 (1)| 00:00:26 |
|
| 13 | MERGE JOIN OUTER | | 1 | 64 | 278 (1)| 00:00:26 |
|
| 14 | TABLE ACCESS BY INDEX ROWID| XXXX_SUPPLIER | 1 | 45 | 146 (0)| 00:00:14 |
|
| 15 | INDEX FULL SCAN | PK_XXX_SUPPLIER | 1 | | 145 (0)| 00:00:14 |
|
| 16 | SORT JOIN | | 17998 | 333K| 132 (2)| 00:00:12 |
|
| 17 | VIEW | | 17998 | 333K| 131 (1)| 00:00:12 |
|
| 18 | SORT GROUP BY | | 17998 | 544K| 131 (1)| 00:00:12 |
|
| 19 | TABLE ACCESS FULL | XXXX_SUPPLIER_CONTACT | 30058 | 909K| 130 (0)| 00:00:12 |
|
---------------------------------------------------------------------------------------------------------------------
|
其实还有一种方法:使用awrsqrpi.sql和awrsqrpt.sql可以做到,该方法不在本文论坛之列。
通过上面查询结果可以得出,SQLID为的SQL语句,在AWR中总共保存有3种执行计划,但在在8月5日的9:00—09:30时第2节点上该语句的执行计划只有一种,选择了错误的执行计划。原因为统计信息不正确导致Rows估算错误,从而选择错误的执行计划。
巧用DISPLAY_AWR函数与dba_hist_sqlstat结合查询SQL语句在指定节点指定时间范围内的历史执行计划的更多相关文章
- 查询sql语句所花时间
--1:下面这种是SQL Server中比较简单的查询SQL语句执行时间方法,通过查询前的时间和查询后的时间差来计算的: declare @begin_date datetime declare @e ...
- 跨服务器查询sql语句样例
若2个数据库在同一台机器上:insert into DataBase_A..Table1(col1,col2,col3----)select col11,col22,col33-- from Data ...
- Django查询SQL语句
Django查询SQL语句 # 1 res=models.Book.objects.all() # print(res)#<QuerySet [<Book: Book object> ...
- 分页用到的子查询sql语句
说明(2017-8-31 23:30:22): 1. 分页用到的子查询sql语句 select * from(select *,ROW_NUMBER() over(order by id)as num ...
- 多表查询sql语句
多表查询sql语句 1 --解锁SCOTT用户 2 alter user scott account unlock 3 --检索指定的列 4 select job,ename,empno from e ...
- 跨服务器查询sql语句样例(转)
若2个数据库在同一台机器上: insert into DataBase_A..Table1(col1,col2,col3----) select col11,col22,col33-- from Da ...
- 在论坛中出现的比较难的sql问题:19(row_number函数 行转列、sql语句记流水)
原文:在论坛中出现的比较难的sql问题:19(row_number函数 行转列.sql语句记流水) 最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记 ...
- 微擎查询SQL语句常用
pdo_fetch:根据SQL语句,查询一条记录 array | boolean pdo_fetch($sql, $params = array()); // :uid 是参数的一个点位符,没有使用引 ...
- 数据库查询SQL语句的时候如何写会效率更高?
引言 以前刚开始做项目的时候,开发经验尚浅,遇到问题需求只要把结果查询出来就行,至于查询的效率可能就没有太多考虑,数据少的时候还好,数据一多,效率问题就显现出来了.每次遇到查询比较慢时,项目经理就会问 ...
随机推荐
- 格而知之16:我所理解的Block(2)
11.那么Block到底是怎么实现的呢?试一试通过将Block 的代码转换成普通C语言代码来查看它的实现过程. 要将OC代码转换成C语言代码,可以使用clang编译的一个命令: 通过这个命令能把指定文 ...
- 关于NetBeans IDE的配置优化
首先,IDE的版本最好对应着JDK的版本. NetBeans优化的目的是提高NetBeans的启动速度和运行速度.下面介绍的NetBeans优化技巧是在版本6.0beta2上的优化.经过实验,大大提高 ...
- Android应用程序资源的查找过程分析
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8806798 我们知道,在Android系统中, ...
- codevs1009
题目地址:http://codevs.cn/problem/1009/ 分析: [TAG]FLOYD,乘法原理,高精度 [构思] 求可变换数的个数,那么就是组合数学的内容,四个原理的应用: 假如能知道 ...
- 3. QT窗体间值的传递(续)
一.前言 上篇博客中通过重载子窗体的构造函数将主窗体的值传入到子窗体,但是在子窗体运行过程中如何才能将值动态的传入到子窗体?可以有两种办法,1.信号和槽的方式传值:2.主窗体中将传出值设置为publi ...
- NFinal简介
NFinalWeb框架是基于魔法糖语法思想创建的框架.本框架有两大特点.1.所有框架里最简单易学易配置的.2.所有框架里运行效率最快的. 相关介绍1.运行效率比任何php和java以及.net框架要快 ...
- Android——ExpandableListView事件拦截
1.满足条件 如果使用ExpandableListView,需要子item响应一个事件,比如重新启动一个新的activity,需要满足下面的条件: (1).修改Adapter返回值 覆写BaseExp ...
- I/O多路复用之select
1.什么是I/O多路复用 关于什么是I/O多路复用,在知乎上有个很好的回答,可以参考罗志宇前辈的回答. 这里记录一下自己的理解.我认为要理解这个术语得从两方面去出发,一是:多路是个什么概念?二是:复用 ...
- 图的割点 桥 双连通(byvoid)
[点连通度与边连通度] 在一个无向连通图中,如果有一个顶点集合,删除这个顶点集合,以及这个集合中所有顶点相关联的边以后,原图变成多个连通块,就称这个点集为割点集合.一个图的点连通度的定义为,最小割点集 ...
- 算法_Longest Palindromic Substring(寻找最长回文字串)
题目:Given a string S, find the longest palindromic substring in S. You may assume that the maximum le ...