利用outline固定执行计划

2024-05-13 02:58
文章标签 执行 计划 固定 outline

本文主要是介绍利用outline固定执行计划,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

登录scott创建实验用表TEST1:create table test1 (name varchar2(10));
插入数据:insert into test1 values('luyang'); 
 insert into test1(name) values('zhengda');
          insert into test1(name) values('sunyi');
 insert into test1(name) values('lixuefei');
 




1、管理员用户授权
grant create any outline to scott;




2、登录scott用户创建outline
create or replace outline TEST1_OUTLINE
for category demo on
select * from test1 where name='luyang';




3、查看概要是否生成
COL NAME FOR A30
COL CATEGORY FOR A10
COL SQL_TEXT FOR A30
select name, category, used, sql_text
from user_outlines
where category = 'DEMO';


NAME                           CATEGORY   USED   SQL_TEXT
------------------------------ ---------- ------ ------------------------------
TEST1_OUTLINE                  DEMO       UNUSED select * from test1 where name
                                                 ='luyang'


4、修改OUTLN用户密码、解锁
alter user outln account unlock identified by outln;




5、使用outln用户,exp导出outline的数据
exp outln/outln tables=OL\$,OL\$HINTS file=ol.dmp log=ol.log






以上是在我的10G库上的操作
*********************************************************************************************************
以下是在我的11G库上的操作




6、使用outln用户,导入outline数据
imp outln/outln file=c:\ol.dmp ignore=y log=c:\ol.log;






7、使用sys用户更新outline的signature
exec dbms_outln.update_signatures;
启用stored outline
alter system set use_stored_outlines=demo; 




8、检查outlines是否被使用
conn scott/tiger
create index ind_test1 on test1(name);
set autotrace trace explain;
select * from test1 where name='luyang';


Execution Plan
----------------------------------------------------------
Plan hash value: 4122059633


---------------------------------------------------------------------------
| Id  | Operation         | Name  | Rows  | Bytes | Cost (%CPU)| Time     |
---------------------------------------------------------------------------
|   0 | SELECT STATEMENT  |       |     1 |     7 |     3   (0)| 00:00:01 |
|*  1 |  TABLE ACCESS FULL| TEST1 |     1 |     7 |     3   (0)| 00:00:01 |
---------------------------------------------------------------------------


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


   1 - filter("NAME"='luyang')


Note
-----
   - outline "TEST1_OUTLINE" used for this statement


注意执行计划指出online已经使用
说明outline已经启用。


























停止db使用outline功能: 
alter system set use_stored_outlines=false; 




注意:outline固定执行计划只能针对固定的sql语句,如果上面试验你用select * from scott.test1 where name='luyang';也不会走outline的!















这篇关于利用outline固定执行计划的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/984491

相关文章

MyBatis Plus中执行原生SQL语句方法常见方案

《MyBatisPlus中执行原生SQL语句方法常见方案》MyBatisPlus提供了多种执行原生SQL语句的方法,包括使用SqlRunner工具类、@Select注解和XML映射文件,每种方法都有... 目录 如何使用这些方法1. 使用 SqlRunner 工具类2. 使用 @Select 注解3. 使用

使用python生成固定格式序号的方法详解

《使用python生成固定格式序号的方法详解》这篇文章主要为大家详细介绍了如何使用python生成固定格式序号,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考一下... 目录生成结果验证完整生成代码扩展说明1. 保存到文本文件2. 转换为jsON格式3. 处理特殊序号格式(如带圈数字)4

Linux kill正在执行的后台任务 kill进程组使用详解

《Linuxkill正在执行的后台任务kill进程组使用详解》文章介绍了两个脚本的功能和区别,以及执行这些脚本时遇到的进程管理问题,通过查看进程树、使用`kill`命令和`lsof`命令,分析了子... 目录零. 用到的命令一. 待执行的脚本二. 执行含子进程的脚本,并kill2.1 进程查看2.2 遇到的

java中ssh2执行多条命令的四种方法

《java中ssh2执行多条命令的四种方法》本文主要介绍了java中ssh2执行多条命令的四种方法,包括分号分隔、管道分隔、EOF块、脚本调用,可确保环境配置生效,提升操作效率,具有一定的参考价值,感... 目录1 使用分号隔开2 使用管道符号隔开3 使用写EOF的方式4 使用脚本的方式大家平时有没有遇到自

mybatis直接执行完整sql及踩坑解决

《mybatis直接执行完整sql及踩坑解决》MyBatis可通过select标签执行动态SQL,DQL用ListLinkedHashMap接收结果,DML用int处理,注意防御SQL注入,优先使用#... 目录myBATiFBNZQs直接执行完整sql及踩坑select语句采用count、insert、u

一个Java的main方法在JVM中的执行流程示例详解

《一个Java的main方法在JVM中的执行流程示例详解》main方法是Java程序的入口点,程序从这里开始执行,:本文主要介绍一个Java的main方法在JVM中执行流程的相关资料,文中通过代码... 目录第一阶段:加载 (Loading)第二阶段:链接 (Linking)第三阶段:初始化 (Initia

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法

Java实现远程执行Shell指令

《Java实现远程执行Shell指令》文章介绍使用JSch在SpringBoot项目中实现远程Shell操作,涵盖环境配置、依赖引入及工具类编写,详解分号和双与号执行多指令的区别... 目录软硬件环境说明编写执行Shell指令的工具类总结jsch(Java Secure Channel)是SSH2的一个纯J

python 线程池顺序执行的方法实现

《python线程池顺序执行的方法实现》在Python中,线程池默认是并发执行任务的,但若需要实现任务的顺序执行,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋... 目录方案一:强制单线程(伪顺序执行)方案二:按提交顺序获取结果方案三:任务间依赖控制方案四:队列顺序消

Go语言连接MySQL数据库执行基本的增删改查

《Go语言连接MySQL数据库执行基本的增删改查》在后端开发中,MySQL是最常用的关系型数据库之一,本文主要为大家详细介绍了如何使用Go连接MySQL数据库并执行基本的增删改查吧... 目录Go语言连接mysql数据库准备工作安装 MySQL 驱动代码实现运行结果注意事项Go语言执行基本的增删改查准备工作