问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

sql profile和SPM baseline谁的优先级高

发布网友 发布时间:2022-04-20 05:08

我来回答

1个回答

热心网友 时间:2022-04-08 00:59

SQL Profile和SPM baseline都存在的时候,会是什么样的情况呢?
我建立了一个SQL profile走索引,建立了一个SPM baseline走全表扫描

先看执行计划
SQL> set autot on exp

SQL> Select count(*) FROM hWz Where ID=200;

COUNT(*)
----------
1

1 row selected.

Execution Plan
----------------------------------------------------------
Plan hash value: 2897229555

---------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
---------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 4 | 3 (0)| 00:00:01 |
| 1 | SORT AGGREGATE | | 1 | 4 | | |
|* 2 | TABLE ACCESS FULL| HWZ | 2 | 8 | 3 (0)| 00:00:01 |
---------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

2 - filter("ID"=200)

Note
-----
- SQL profile "pro_test" used for this statement
- SQL plan baseline "SQL_PLAN_2cmwdxu0450tt1412268d" used for this statement

SQL> set autot off

看见二者都生效了,但是用的是全表扫描

在看下10053trace的结果的情况

SQL> alter session set events '10053 trace name context forever, level 12';

Session altered.

SQL> Select count(*) FROM hWz Where ID=200;

COUNT(*)
----------
1

1 row selected.

SQL> alter session set events '10053 trace name context off';

Session altered.

......................
SPM: statement found in SMB
......................
索引的hint先被应用,sql profile生效了
Final query after transformations:******* UNPARSED QUERY IS *******
SELECT /*+ INDEX ("HWZ" "HWZ_IDX01") */ COUNT(*) "COUNT(*)" FROM "ORACLE_OCM"."HWZ" "HWZ" WHERE "HWZ"."ID"=200
kkoqbc: optimizing query block SEL$1 (#0)
......................
Access path analysis for HWZ
***************************************
SINGLE TABLE ACCESS PATH
Single Table Cardinality Estimation for HWZ[HWZ]
Table: HWZ Alias: HWZ
Card: Original: 2000.000000 Rounded: 2 Computed: 2.00 Non Adjusted: 2.00
Access Path: index (AllEqRange)
Index: HWZ_IDX01
resc_io: 1.00 resc_cpu: 8371
ix_sel: 0.000999 ix_sel_with_filters: 0.000999
Cost: 1.00 Resp: 1.00 Degree: 1
Best:: AccessPath: IndexRange --走的是索引
Index: HWZ_IDX01
Cost: 1.00 Degree: 1 Resp: 1.00 Card: 2.00 Bytes: 0

***************************************
......................
SPM: planId's of plan baseline are: 336733837
SPM: using qksan to reproce, cost and select accepted plan, sig = 2760581152094978873
SPM: plan reprocibility round 0 (plan outline + session OFE)
SPM: using qksan to reproce accepted plan, planId = 336733837
Registered qb: SEL$1 0x23afa130 (PARSER)
.....................
SPM: planId in plan baseline = 336733837, planId of reproced plan = 336733837
SPM: best cost so far = 3.01, current accepted plan cost = 3.014448
Starting SQL statement mp
.....................
SPM: re-parse to use selected accepted plan, planId = 336733837
Registered qb: SEL$1 0x23a61dc0 (PARSER)
......................
SPM: statement found in SMB
SPM: re-parsing to generate selected accepted plan, planId = 336733837
......................
Final query after transformations:******* UNPARSED QUERY IS *******
baseline的hint被加进去了
SELECT /*+ INDEX ("HWZ" "HWZ_IDX01") FULL ("HWZ") */ COUNT(*) "COUNT(*)" FROM "ORACLE_OCM"."HWZ" "HWZ" WHERE "HWZ"."ID"=200
kkoqbc: optimizing query block SEL$1 (#0)
......................
Access path analysis for HWZ
***************************************
SINGLE TABLE ACCESS PATH
Single Table Cardinality Estimation for HWZ[HWZ]
Table: HWZ Alias: HWZ
Card: Original: 2000.000000 Rounded: 2 Computed: 2.00 Non Adjusted: 2.00
Access Path: TableScan
Cost: 3.01 Resp: 3.01 Degree: 0
Cost_io: 3.00 Cost_cpu: 435607
Resp_io: 3.00 Resp_cpu: 435607
Best:: AccessPath: TableScan
Cost: 3.01 Degree: 1 Resp: 3.01 Card: 2.00 Bytes: 0
走的是全表扫描
***************************************

----- Explain Plan Dump -----
----- Plan Table -----

============
Plan Table
============
--------------------------------------+-----------------------------------+
| Id | Operation | Name | Rows | Bytes | Cost | Time |
--------------------------------------+-----------------------------------+
| 0 | SELECT STATEMENT | | | | 3 | |
| 1 | SORT AGGREGATE | | 1 | 4 | | |
| 2 | TABLE ACCESS FULL | HWZ | 2 | 8 | 3 | 00:00:01 |
--------------------------------------+-----------------------------------+
Predicate Information:
----------------------
2 - filter("ID"=200)

Content of other_xml column
===========================
db_version : 11.2.0.1
parse_schema : ORACLE_OCM
plan_hash : 2897229555
plan_hash_2 : 336733837
sql_profile : pro_test
Outline Data:
/*+
BEGIN_OUTLINE_DATA
IGNORE_OPTIM_EMBEDDED_HINTS
OPTIMIZER_FEATURES_ENABLE('11.2.0.1')
DB_VERSION('11.2.0.1')
ALL_ROWS
OUTLINE_LEAF(@"SEL$1")
FULL(@"SEL$1" "HWZ"@"SEL$1")
END_OUTLINE_DATA
*/

总结:
sql profile和SPM baseline是一起作用,hint中会被合并,这可以从显示的执行计划上看出来,但是sql profile要起作用的前提是,不改变执行计划(废话,要它干啥呢?)
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
厂口银杏园地址在哪里? 昆明银杏大道在什么地方 昆明哪些地方有银杏树 从二月河“帝王三部曲”看90年代的文学场(一) 二月河《落霞三部曲》读书札记 安装织梦CMS到新浪SAE,这数据库主机,用户都是什么?这个是安装在新浪SE... SAE上的mySql初始化了怎么用啊,java怎么连上去啊,地址,端口号,账号... 金鱼尾部出现血丝,怎么办? 金鱼尾鳍上有血丝,急躁不安是什么病 请问?家里养的金鱼,一夜过来,金鱼尾巴上面都有红色血丝是怎么回事... Oracle中表建立联合索引后,其中的一个字段是否可... 如何从硬盘直接进入DOS,再使用GHOST。. set autotrace on时候为什么会报Cannot SET AUTOTRACE 我的系统是vista,开机的时候有两个启动项是我不想... 如何获取执行计划 如何启用sqlplus的AutoTrace功能 如何做trace 每一步 每一行 哪里有Autot cad2007教学视频下载 提示 autoit v3:autot3.exe-损坏文件 怎么修复?请... AutotCAD中怎么删除已定义的块??? 为什么很多人宁愿买小米8SE也不买小米8? 安利这个牌子是哪个国家的呢? 安利为什么消失了 郑州出租车网官网怎么不能预约? 我想在郑州考取出租车资格证,请问在哪儿报名?多... 郑州出租车网怎么打不开 郑州市出租车往车上上人员从业上传多久才能营运 郑州出租车从业资格证网上报名报不上怎么办? 郑州出租车网 郑州市出租车资格证具体到哪个部门,地点报名 oracle 什么时候使用索引 如何高效 online 创建大表的索引 delphi7 求自动关机源码 如何计算某个sql语句所产生的redo和undo大小 Oracle 如何控制查询不区分大小写? oralce 计算当前记录排在总记录数的百分之多少 oracle的recursive calls为什么这么高 oracle hint cardinality 提示什么意思 请教高手:oracle临时表创建优化 常用理发工具有哪些?都有什么用途? 你好请问欧派电热水器显示E1故障? 剪头发需要哪些工具? 理发店像狼牙棒的工具叫什么,可蓬松头发的那种 削薄头发使用的剪子叫什么 自己理发需要买什么工具? 理发店用品名称都有哪些 理发工具有哪些 理发店常用工具有哪些? 理发店用的那个把头发拉直的夹子叫什么? 剃头的头子是什么东西