no_expand优化案例
bond 来看一个烂语句:
select a.*,b.dn from temp_allcrmuser a, phs_smc_user b
where a.USERNUMBER=b.dn
and (a.ACTFLAG<>b.ACT_FLG
or a.ENABLEFLAG<>b.ENABLE_FLG);
汽水 15:50:29
但是对你自己做实验,搞工作极其有利
bond15:50:34
-------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 2 | 112 | 12 (17)| 00:00:01 |
| 1 | CONCATENATION | | | | | |
| 2 | MERGE JOIN | | 1 | 56 | 6 (17)| 00:00:01 |
| 3 | TABLE ACCESS BY INDEX ROWID| PHS_SMC_USER | 22 | 396 | 3 (0)| 00:00:01 |
| 4 | INDEX FULL SCAN | IND_SMC_USER_DN | 22 | | 1 (0)| 00:00:01 |
|* 5 | FILTER | | | | | |
|* 6 | SORT JOIN | | 82 | 3116 | 3 (34)| 00:00:01 |
| 7 | TABLE ACCESS FULL | TEMP_ALLCRMUSER | 82 | 3116 | 2 (0)| 00:00:01 |
| 8 | MERGE JOIN | | 1 | 56 | 6 (17)| 00:00:01 |
| 9 | TABLE ACCESS BY INDEX ROWID| PHS_SMC_USER | 22 | 396 | 3 (0)| 00:00:01 |
| 10 | INDEX FULL SCAN | IND_SMC_USER_DN | 22 | | 1 (0)| 00:00:01 |
|* 11 | FILTER | | | | | |
|* 12 | SORT JOIN | | 82 | 3116 | 3 (34)| 00:00:01 |
| 13 | TABLE ACCESS FULL | TEMP_ALLCRMUSER | 82 | 3116 | 2 (0)| 00:00:01 |
-------------------------------------------------------------------------------------------------
bond(510330025) 15:50:48
5 - filter("A"."ENABLEFLAG"<>"B"."ENABLE_FLG")
6 - access("A"."USERNUMBER"="B"."DN")
filter("A"."USERNUMBER"="B"."DN")
11 - filter("A"."ACTFLAG"<>"B"."ACT_FLG" AND LNNVL("A"."ENABLEFLAG"<>"B"."ENABLE_FLG"))
12 - access("A"."USERNUMBER"="B"."DN")
filter("A"."USERNUMBER"="B"."DN")
SELECT *
FROM (SELECT rownum,
a.owner AS owner_a,
b.owner AS owner_b,
a.object_id AS object_id_a,
b.object_id AS object_id_b,
a.object_name
FROM test1 a
INNER JOIN test2 b
ON b.object_name = a.object_name)
WHERE (owner_a <> owner_b OR object_id_a <> object_id_b)
重庆-有教无类16:23:11
这个它改不了了
重庆-有教无类 16:26:13
咋样
重庆-有教无类16:26:17
还con不
bond 16:27:17
==
bond 16:30:59
select * from
(
select rownum a_rownum,a.ACTFLAG a_ACTFLAG,a.ENABLEFLAG a_ENABLEFLAG,b.dn,b.ACT_FLG b_ACT_FLG,b.ENABLE_FLG b_ENABLE_FLG
from temp_allcrmuser a
join phs_smc_user b
on a.USERNUMBER=b.dn) t
where (a_ACTFLAG<>b_ACT_FLG or a_ENABLEFLAG<>b_ENABLE_FLG);
----------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
----------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 22 | 1694 | 8740 (6)| 00:01:45 |
|* 1 | VIEW | | 22 | 1694 | 8740 (6)| 00:01:45 |
| 2 | COUNT | | | | | |
|* 3 | HASH JOIN | | 22 | 1232 | 8740 (6)| 00:01:45 |
| 4 | TABLE ACCESS FULL| PHS_SMC_USER | 22 | 396 | 12 (0)| 00:00:01 |
| 5 | TABLE ACCESS FULL| TEMP_ALLCRMUSER | 10M| 394M| 8571 (4)| 00:01:43 |
--------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter("A_ACTFLAG"<>"B_ACT_FLG" OR "A_ENABLEFLAG"<>"B_ENABLE_FLG")
3 - access("A"."USERNUMBER"="B"."DN")
bond 16:31:05
靠,可以了
bond 16:31:18
就是因为rownum?
史狮16:31:22
太牛b
。。。。。省略。。。。。
select /*+ Use_hash(a,b) no_expand*/ a.*,b.dn from temp_allcrmuser a, phs_smc_user b
where a.USERNUMBER=b.dn
and (a.ACTFLAG<>b.ACT_FLG
or a.ENABLEFLAG<>b.ENABLE_FLG);
--------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 18 | 1008 | 8740 (6)| 00:01:45 |
|* 1 | HASH JOIN | | 18 | 1008 | 8740 (6)| 00:01:45 |
| 2 | TABLE ACCESS FULL| PHS_SMC_USER | 22 | 396 | 12 (0)| 00:00:01 |
| 3 | TABLE ACCESS FULL| TEMP_ALLCRMUSER | 10M| 394M| 8571 (4)| 00:01:43 |
--------------------------------------------------------------------------------------
用no_expand HINT也可以
在ORACLE11g 之前,CBO 还是会犯SB ,11g之后 不会自动的 expand了,
注意,上面都是我的学生
no_expand优化案例的更多相关文章
- 数据库优化案例——————某市中心医院HIS系统
记得在自己学习数据库知识的时候特别喜欢看案例,因为优化的手段是容易掌握的,但是整体的优化思想是很难学会的.这也是为什么自己特别喜欢看案例,今天也开始分享自己做的优化案例. 最近一直很忙,博客产出也少的 ...
- mysql优化案例
MySQL优化案例 Mysql5.1大表分区效率测试 Mysql5.1大表分区效率测试MySQL | add at 2009-03-27 12:29:31 by PConline | view:60, ...
- SQL 优化案例 1
create or replace procedure SP_GET_NEWEST_CAPTCHA( v_ACCOUNT_ID in VARCHAR2, --接收短信的手机号 v_Tail_num i ...
- 老李案例分享:Weblogic性能优化案例
老李案例分享:Weblogic性能优化案例 POPTEST的测试技术交流qq群:450192312 网站应用首页大小在130K左右,在之前的测试过程中,其百用户并发的平均响应能力在6.5秒,性能优化后 ...
- Hive优化案例
1.Hadoop计算框架的特点 数据量大不是问题,数据倾斜是个问题. jobs数比较多的作业效率相对比较低,比如即使有几百万的表,如果多次关联多次汇总,产生十几个jobs,耗时很长.原因是map re ...
- 数据库优化案例——————某知名零售企业ERP系统
写在前面 记得在自己学习数据库知识的时候特别喜欢看案例,因为优化的手段是容易掌握的,但是整体的优化思想是很难学会的.这也是为什么自己特别喜欢看案例,今天也分享自己做的优化案例. 之前分享过OA系统.H ...
- Spark集群之yarn提交作业优化案例
Spark集群之yarn提交作业优化案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.启动Hadoop集群 1>.自定义批量管理脚本 [yinzhengjie@s101 ...
- MySQL参数优化案例
环境介绍 优化层级与指导思想 优化过程 最小化安装情况下的性能表现 优化innodb_buffer_pool_size 优化innodb_log_files_in_group&innodb_l ...
- MySQL的索引单表优化案例分析
建表 建立本次优化案例中所需的数据库及数据表 CREATE DATABASE db0206; USE db0206; CREATE TABLE `db0206`.`article`( `id` INT ...
随机推荐
- 学习JDK1.8集合源码之--LinkedHashSet
1. LinkedHashSet简介 LinkedHashSet继承自HashSet,故拥有HashSet的全部API,LinkedHashSet内部实现简单,核心参数和方法都继承自HashSet,只 ...
- tomcat配置证书
[size=x-small][size=xx-large][size=medium] 1.利用java 生成一个.keystore文件 进入命令行(假设已经设定了环境变量) 执行 keytool -g ...
- 弘康人寿基于 RocketMQ 构建微服务边界总线的实践
随着互联网+和平台化战略的兴起,各个行业的 IT 系统都在向互联网架构发展,涉及的主要技术包括微服务.消息和弹性计算等,采用微服务架构实现服务高内聚.低耦合,通过异步消息完成交易快速响应和高并发.由于 ...
- P1127
题目描述 如果单词X的末字母与单词Y的首字母相同,则X与Y可以相连成X.Y.(注意:X.Y之间是英文的句号“.”).例如,单词dog与单词gopher,则dog与gopher可以相连成dog.goph ...
- 自定义注解--Annotation
Annotation 概念:注解 原理 是一种接口,通过反射机制中的相关API来访问annotation信息 常见的标准Annotation @Override 方法重写 @Deprecated ...
- SPSS操作:轻松实现1:1倾向性评分匹配(PSM)
SPSS操作:轻松实现1:1倾向性评分匹配(PSM) 谈起临床研究,如何设立一个靠谱的对照,有时候成为整个研究成败的关键.对照设立的一个非常重要的原则就是可比性,简单说就是对照组除了研究因素外,其他的 ...
- python学习之旅1-2(基础知识)
三,python基础初识. 1.运行python代码. 在d盘下创建一个t1.py文件内容是: print('hello world') 打开windows命令行输入cmd,确定后 写入代码pytho ...
- 洛谷 P3951 小凯的疑惑 找规律
目录 题面 题目链接 题目描述 输入输出格式 输入格式: 输出格式: 输入输出样例 输入样例: 输出样例: 说明 思路 证明 AC代码 include<bits/stdc++.h> 题面 ...
- retailMall-vuedemo1
//home.vue <template> <div class="home"> <div class="top-info"> ...
- 【JZOJ4893】【NOIP2016提高A组集训第15场11.14】过河
题目描述 数据范围 解法 由于同一个点,同一个圆盘最多只会走一次. 把(i,j)当作一个点,表示第i个点,放第i个圆盘. 那么就可以使用最短路. 时间复杂度为O(n4∗k). 事实上存在冗余圆盘,一个 ...