[20211213]提示precompute_subquery.txt

[20211213]提示precompute_subquery.txt

–//学习了提示precompute_subquery,提示很明显就是先计算子查询的结果集,直接通过例子说明:

1:环境:
SCOTT@book> @ ver1
PORT_STRING VERSION BANNER
PRECOMPUTE_SUBQUERY QKSFM_TRANSFORMATION PRECOMPUTE_SUBQUERY 2 0 10.2.0.1

2.测试:
SCOTT@book> @sl all
alter session set statistics_level = all;
Session altered.

SCOTT@book> select * from dept where deptno not in (select deptno from emp);
DEPTNO DNAME LOC
SQL_ID 7gt57qty3rnw4, child number 0
| Id | Operation | Name | Starts | E-Rows |E-Bytes| Cost (%CPU)| E-Time | A-Rows | A-Time | Buffers | Reads | OMem | 1Mem | Used-Mem |
Query Block Name / Object Alias (identified by operation id):
1 – access(“DEPTNO”=”DEPTNO”)

3.使用提示PRECOMPUTE_SUBQUERY:
SCOTT@book> select * from dept where deptno not in (select /+ PRECOMPUTE_SUBQUERY / deptno from emp);
DEPTNO DNAME LOC
SQL_ID b58wqt9dq1sqq, child number 0
| Id | Operation | Name | Starts | E-Rows |E-Bytes| Cost (%CPU)| E-Time | A-Rows | A-Time | Buffers |
Query Block Name / Object Alias (identified by operation id):
1 – filter((“DEPTNO”<>10 AND “DEPTNO”<>20 AND “DEPTNO”<>30))

–//注意看执行计划以及过滤条件实际上分开2步先执行select /+ PRECOMPUTE_SUBQUERY / deptno from emp,然后直接使用值查询第2
–//步。

4.做10046跟踪看看:

SCOTT@book> @ 10046on 12
Session altered.

SCOTT@book> select * from dept where deptno not in (select /+ PRECOMPUTE_SUBQUERY / deptno from emp);
DEPTNO DNAME LOC
20 RESEARCH DALLAS
40 OPERATIONS BOSTON
10 ACCOUNTING NEW YORK
30 SALES CHICAGO

SCOTT@book> @ dpc ” ”
PLAN_TABLE_OUTPUT
select * from dept where deptno in (select /+ PRECOMPUTE_SUBQUERY /
deptno from tx)
Plan hash value: 1476295187
| 0 | SELECT STATEMENT | | 1 | | | 44 (100)| | 4 |00:00:00.01 | 10 | | | |
|* 1 | HASH JOIN SEMI | | 1 | 4 | 100 | 44 (3)| 00:00:01 | 4 |00:00:00.01 | 10 | 1321K| 1321K| 1017K (0)|
| 2 | TABLE ACCESS FULL| DEPT | 1 | 4 | 80 | 3 (0)| 00:00:01 | 4 |00:00:00.01 | 6 | | | |
| 3 | TABLE ACCESS FULL| TX | 1 | 84825 | 414K| 40 (0)| 00:00:01 | 46 |00:00:00.01 | 4 | | | |
1 – SEL$5DA710D3
2 – SEL$5DA710D3 / DEPT@SEL$1
3 – SEL$5DA710D3 / TX@SEL$2
Predicate Information (identified by operation id):

Original: https://www.cnblogs.com/lfree/p/15682592.html
Author: lfree
Title: [20211213]提示precompute_subquery.txt

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/606220/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 什么是进程

    进程:是指计算机中已运行的程序。进程本身不是基本的运行单位,而是线程的容器。程序本身只是指令、数据及其组织形式的描述,进程才是程序(那些指令和数据)的真正运行实例。 进程是程序动态…

    Linux 2023年6月7日
    0113
  • Linux 常用目录管理命令

    cp:复制文件或目录,直接复制,如,cp /root/install.sh /home cp -a:相当於 -pdr 的意思,至於 pdr 请参考下列说明;(常用),如 cp -a…

    Linux 2023年6月14日
    0113
  • VMware Workstation Fixed Unable to connect to the MKS

    场景:早上开虚拟机时突然报这个错 解决办法如下: csharp;gutter:true; 以管理员的身份打开CMD,然后执行如下命令: net start vmx86 net st…

    Linux 2023年6月7日
    081
  • linux系统引导过程

    linux系统引导过程 linux-0.11引导时,将依次运行BIOS程序、bootsect.s、setup.s和head.s,完成引导过程后进入到main函数运行。BIOS完成硬…

    Linux 2023年6月13日
    072
  • 世界上最流行的操作系统不是Windows?

    前言 打住,我知道列位是被标题骗进来的,但是这个论题并不是我瞎吹牛,世界上最流行的操作系统还真不是Windows。 提及操作系统,我们印象中比较深刻的无非就是Windows,Lin…

    Linux 2023年6月13日
    0121
  • identity server4 授权成功页面跳转时遇到错误:Exception: Correlation failed. Unknown location的解决方法

    一、异常信息描述 错误信息,看到这个页面是否耳熟能详担又不知道怎么解决 ,坑死个人不偿命,,,,,,,, 二、处理方法 1、在web项目中增加类SameSiteCookiesSer…

    Linux 2023年6月13日
    0125
  • NoteOfMySQL-09-存储过程与函数

    常用的SQL语句在执行时需要先编译,然后执行;而存储过程(Store Procedure)是经编译后存储在数据库中的SQL语句集,在数据库中创建和保存。 一、存储过程与函数的区别 …

    Linux 2023年6月14日
    077
  • redis key的过期时间

    设置redis key的生存过期时间 Redis 有四个不同的命令可以用于设置键的生存时间(键可以存在多久)或过期时间(键什么时候会被删除) : EXPlRE 命令用于将键key …

    Linux 2023年5月28日
    097
  • 最小生成树-Prim算法

    最小生成树minimal-spanning-tree(概念就不具体介绍了)有两种基于不同贪心选择的算法,一个为Prim算法,一个为Kruskal算法。 Prim和Dijkstra算…

    Linux 2023年6月7日
    0100
  • Java高级

    抽象类和抽象方法 1.定义 随着继承层次中一个个新子类的定义,类变得越来越具体,而父类则更一般,更通用。 类的设计应该保证父类和子类都能够共享特征。 有时候将一个父类设计的非常抽象…

    Linux 2023年6月13日
    0112
  • 实现Django ORM admin view中model字段choices取值自动更新的一种方法

    有两个表,一个是记录网站信息的site表,结构如下: CREATE TABLE site ( id bigint(20) unsigned NOT NULL AUTO_INCREM…

    Linux 2023年6月6日
    0111
  • Paxos 协议简单介绍

    一、简介 Paxos 协议是少数在工程实践中证实的强一致性、高可用的去中心化分布式协议。Google 的很多大型分布式系统都采用了 Paxos 算法来解决分布式一致性问题,如 Ch…

    Linux 2023年6月16日
    0144
  • Qt-Vnc远程

    VNC简介 VNC(Virtual Network Computing)是基于RFB(Remote Frame Buffer)协议的远程系统,C/S端口默认为5900,B/S端口默…

    Linux 2023年6月8日
    0495
  • RabbitMQ知识简单理解

    官网链接:http://next.rabbitmq.com/getstarted.html 官网给出了每种工作模式的实例代码,可以参考其中的实现 一、RabbitMQ整体架构图 二…

    Linux 2023年6月14日
    0117
  • linux定时删除N天前的旧文件

    语句写法: find 对应目录 -mtime +天数 -name “文件名” -exec rm -rf {} \; 例1:find /usr/local/b…

    Linux 2023年6月13日
    0108
  • netstat 命令查看端口状态详解

    转载请注明出处: netstat 可以查看服务器当前端口列表及指定端口的连接状态等; -t : 指明显示TCP端口,t是TCP的首字母。 -u : 指明显示UDP端口,u是UDP的…

    Linux 2023年6月14日
    082
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球