[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)

大家都在看

  • PYTORCH: 60分钟

    什么是PyTorch? PyTorch 是一个基于Python的科学计算包,有两大用途: NumPy的替代品,可使用GPUs和其它加速器的强大功能 一个用于实现神经网络的自动微分库…

    Linux 2023年6月16日
    0175
  • 操作系统实战45讲笔记-01 程序的运行过程:从代码到机器运行

    计算机硬件是无法直接运行C 语言文本程序代码的,需要 C 语言编译器,把这个代码编译成具体硬件平台的二进制代码。再由具体操作系统建立进程,把这个二进制文件装进其进程的内存空间中,才…

    Linux 2023年6月7日
    092
  • kafka能做什么?kafka集群配置 (卡夫卡 大数据)

    什么是Kafka 官网介绍: 几个概念: 详细介绍 : 操作kafka: kafka集群 消息测试 问题检测 什么是Kafka 官网介绍: ApacheKafka®是一个分布式流媒…

    Linux 2023年6月7日
    0130
  • 嵌入式软件开发之程序架构设计-任务调度

    1 前言 在嵌入式MCU软件开发过程中,程序任务调度架构的搭建尤为重要,直接关系到该程序能支持多少功能(随着功能越多系统响应能力越弱,好的任务调度架构能够在保持相同的系统响应能力前…

    Linux 2023年6月7日
    0120
  • Java Web登录界面

    非常激动的开通了我的第一个博客,在这里希望大家能多多指点,相互学习。 一个简单的登录界面 首先我们先把这个登录分为三块: 一、数据库 数据库我用的是MYSQL; 二、前端 三、后台…

    Linux 2023年6月13日
    0115
  • 手把手教你在Linux系统下安装MySQL

    在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB。 1. 下载并安装MySQ…

    Linux 2023年6月14日
    0105
  • SSH免密登录的配置

    ssh登录 登录ssh一般情况有两种方法 密码登录 秘钥登录(免密) 大部分情况我们选择都是输入密码登录,平常使用暂时没有遇到什么问题。最近我编写了一些使用scp来传输文件的脚本,…

    Linux 2023年6月6日
    055
  • git的 .gitignore 配置概述

    学习背景:自己在使用git时发现有时会上传很多无用的配置文件,或者在项目中已经包含一个本地的git仓库,导致上一级项目上传总是报错,所以学习采用gitignore配置忽略包含的子项…

    Linux 2023年6月13日
    079
  • Apache Shiro 身份验证绕过漏洞 (CVE-2020-1957)

    一、漏洞描述 Apache Shiro 是一个功能强大且易于使用的 Java 安全框架,它执行身份验证、授权、加密和会话管理。 在具有 Spring 动态控制器的 1.5.2 之前…

    Linux 2023年6月13日
    0135
  • 浪剑天下H5游戏详细图文架设教程

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月7日
    096
  • Redis配置参数详解

    Redis是一个应用非常广泛的高性能Key-Value型数据库,与memcached类似,但功能更加强大!本文将按照不同功能模块的方式,依次对各个功能模块的配置参数进行详细介绍。 …

    Linux 2023年5月28日
    091
  • 2022年5月16号开始整理habse

    关于本次整理的hbase内容是基于原理的学习的笔记 Original: https://www.cnblogs.com/yxb123/p/16277454.htmlAuthor: …

    Linux 2023年6月7日
    0122
  • [20211108]索引分裂块清除日志增加(唯一索引)2.txt

    [20211108]索引分裂块清除日志增加(唯一索引)2.txt –//链接http://blog.itpub.net/267265/viewspace-2840853…

    Linux 2023年6月13日
    088
  • 配置git环境与项目创建

    主要用于记录上课笔记,方便以后复习 acgit的地址:https://git.acwing.com/wyw/kob1/ 1. 项目模块的包含 1.1 采用前后端分离 Web端大概框…

    Linux 2023年6月6日
    0120
  • Optional 常用方法总结

    转载请注明出处: Optional 类是 JAVA 8 提供的判断程序是否为空提供的包装工具类;可以减少代码中的 是否为空的判断,以及减少 NullPointerException…

    Linux 2023年6月14日
    0123
  • FusionAccess桌面云安装(windows AD方法)

    创建FusionAccess虚拟机 选择自定义 默认兼容 选择稍后安装操作系统 选择Linux SUSE Linux 名字位置自己选择 选择最少4个处理器 选择最少8G内存 选择仅…

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