用sql 基线 替换执行计划

数据oracle

select * from DBA_SQL_PROFILES;

SYS_SQLPROF_01945ecb1bbc0001

begin

dbms_sqltune.drop_sql_profile(name => 'SYS_SQLPROF_01945ecb1bbc0001');

end;

select * from v$sqlarea where sql_text like '%ShadowBaseline%'

SELECT /* outlinetest223 */ /*+ index(A0 KX_SHADOWCACHECOMPOSITE01) USE_NL(A0 A1 ) INDEX(A1 KX_SHADOWBASELINECOMPOSITE01) */ 'wt.shadow.ShadowBaseline',

A1.Checksum,

A1.ObjectRef,

A1.ObjectRole,

A1.ShadowClass,

A1.ShadowContext,

A1.ShadowTarget,

A1.UpdateCount,

TO_CHAR(A1.createStampA2, 'dd mm yyyy hh24:mi:ss'),

A1.markForDeleteA2,

TO_CHAR(A1.modifyStampA2, 'dd mm yyyy hh24:mi:ss'),

A1.idA2A2,

A1.updateCountA2,

TO_CHAR(A1.updateStampA2, 'dd mm yyyy hh24:mi:ss'),

A0.shadowCacheida2a2

FROM (SELECT INNER0.idA2A2 shadowCacheida2a2,

INNER0.CacheClass shadowclassname,

INNER0.ObjectID shadowObjectRef,

INNER0.ShadowContextId shadowContextId

FROM ShadowCache INNER0) A0,

ShadowBaseline A1

WHERE ((A1.ShadowClass = A0.shadowclassname) AND

(A1.ShadowContext = A0.shadowContextId) AND

(A1.ObjectRef = A0.shadowObjectRef))

AND (A1.markForDeleteA2 = 0)

select sql_text,sql_id,hash_value,child_number,plan_hash_value,to_char(LAST_ACTIVE_TIME,'hh24:mi:ss') time

from v$sql a where sql_text like '%outlinetest223%' and sql_id='5kcr4yj9swmb6'

select sql_text,sql_id,hash_value,child_number,plan_hash_value,to_char(LAST_ACTIVE_TIME,'hh24:mi:ss') time

from v$sql a where sql_text like '%outlinetest221%' and sql_id='4yw39bfnn09ac'

select * from table(dbms_xplan.display_cursor('5kcr4yj9swmb6','',''));

增加基线实验方法

DECLARE

k1 pls_integer;

begin

k1 := DBMS_SPM.LOAD_PLANS_FROM_CURSOR_CACHE (

sql_id=>'5kcr4yj9swmb6',

plan_hash_value=>1563245533

);

end;

DECLARE

k1 pls_integer;

begin

k1 := DBMS_SPM.LOAD_PLANS_FROM_CURSOR_CACHE (

sql_id=>'1291knkqd5bsd',

plan_hash_value=>1563245533

);

end;

SELECT /* outlinetest221 */ 'wt.shadow.ShadowBaseline',

A1.Checksum,

A1.ObjectRef,

A1.ObjectRole,

A1.ShadowClass,

A1.ShadowContext,

A1.ShadowTarget,

A1.UpdateCount,

TO_CHAR(A1.createStampA2, 'dd mm yyyy hh24:mi:ss'),

A1.markForDeleteA2,

TO_CHAR(A1.modifyStampA2, 'dd mm yyyy hh24:mi:ss'),

A1.idA2A2,

A1.updateCountA2,

TO_CHAR(A1.updateStampA2, 'dd mm yyyy hh24:mi:ss'),

A0.shadowCacheida2a2

FROM (SELECT INNER0.idA2A2 shadowCacheida2a2,

INNER0.CacheClass shadowclassname,

INNER0.ObjectID shadowObjectRef,

INNER0.ShadowContextId shadowContextId

FROM ShadowCache INNER0) A0,

ShadowBaseline A1

WHERE ((A1.ShadowClass = A0.shadowclassname) AND

(A1.ShadowContext = A0.shadowContextId) AND

(A1.ObjectRef = A0.shadowObjectRef))

AND (A1.markForDeleteA2 = 0)

select t1.*,dbms_lob.substr(sql_text,60,1) sql_text,ACCEPTED from dba_sql_plan_baselines t1;

查询具体解释计划的的具体内容

select * from table(dbms_xplan.display_sql_plan_baseline(sql_handle=>'SYS_SQL_547c80668cfa3cc4',plan_name=>'SQL_PLAN_58z40cu6gng641d5ff949'));

SQL_PLAN_dvmhk3njraxsy1d5ff949

删除 SQL_PLAN_58z40cu6gng64ad9e551b

SYS_SQL_ddce121d2375771e

SQL_PLAN_dvmhk3njraxsy4f42a20a

将其他计划加入同一个sql_handle

DECLARE

k1 pls_integer;

begin

k1 := DBMS_SPM.LOAD_PLANS_FROM_CURSOR_CACHE (

sql_id=>'4yw39bfnn09ac',

plan_hash_value=>4050511003,sql_handle=>'SYS_SQL_547c80668cfa3cc4'

);

end;

尝试创建其他的基线

DECLARE

k1 pls_integer;

begin

k1 := DBMS_SPM.LOAD_PLANS_FROM_CURSOR_CACHE (

sql_id=>'533vzcjak17w4',

plan_hash_value=>4050511003

);

end;

删除废的方法

DECLARE

k1 pls_integer;

begin

k1 := DBMS_SPM.drop_sql_plan_baseline ( sql_handle=>'SYS_SQL_c734f5e1c718dd5f',plan_name=>'SQL_PLAN_cfd7pw73jjrazad9e551b');

end;

相关推荐
只会写代码10 分钟前
一套开箱即用实体反射Lambda链式工具,彻底告别原生反射样板代码
java·程序员·源码
AI人工智能+电脑小能手10 分钟前
【大白话说Java面试题 第151题】【06_Spring篇】第11题:说一下 Spring Bean 的生命周期?
java·开发语言·后端·spring·面试
骑士雄师17 分钟前
java面试题:jvm ,mybatis
java·jvm·mybatis
广州浮点FLOATLIC23 分钟前
Creo 许可证利用率怎么优化:制造企业该先看共享规则,还是先看模块占用结构
java·开发语言
wuyk55532 分钟前
21. 嵌入式面试避坑指南:sizeof 是关键字,不是函数!
c语言·开发语言·stm32·单片机·嵌入式硬件
2601_9624408434 分钟前
计算机毕业设计之jsp教室管理系统
java·开发语言·笔记·分布式·算法·课程设计·推荐算法
带刺的坐椅2 小时前
用 ChatModel 构建 LLM 驱动的 Java 应用
java·ai·llm·solon·rag·chatmodel
用户3721574261354 小时前
Java 将 Word 文档转换为 Markdown:基础转换与导出选项详解
java
行者全栈架构师4 小时前
PolarDB + Spring Boot 实战:从自建MySQL到云原生数据库的零停机迁移
java·后端·架构
karry_k20 小时前
MyBatis批量insert-select踩坑:useGeneratedKeys=true 可能让PostgreSQL返回大量插入结果
java·后端