暂无图片
哪种连接条件,是可能走出HASH JOIN的
我来答
分享
超越无限D
2023-01-03
哪种连接条件,是可能走出HASH JOIN的

哪种连接条件,是可能走出HASH JOIN的?

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
DarkAthena

这题不太好回,因为只要有连接,都有办法让它走hash join ,大不了强制hint 。
无论是基于RBO还是CBO,连接条件的本身都不是是否会走hash join的决定因素,比如下面这个例子

create table test_aa as select * from dba_objects; create table test_bb as select * from dba_objects; ----hash join select * from test_aa a, test_bb b where a.object_id = b.object_id ; ----hash join select * from test_aa a, test_bb b where a.object_id = b.object_id and a.object_id=1; create unique index xxxxxx on TEST_AA (object_id); ----hash join select * from test_aa a, test_bb b where a.object_id = b.object_id ; --NESTED LOOPS select * from test_aa a, test_bb b where a.object_id = b.object_id and a.object_id=1;
复制

sql没变,就建了个索引,连接方式就变了;
而且同样的连接条件,只是过滤条件不一样,连接方式也可能会不一样;
甚至还有可能,连接条件和过滤条件一样,但由于表的数据量或返回的数据量不一样,采用的连接方式也会不一样。

暂无图片 评论
暂无图片 有用 0
打赏 0
暂无图片
愤怒的蜗牛
2023-01-06
回答的真是详细,学习了。。。。。
伊伊相印

一般是等值连接。。。。。。。。。。。。。。

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
重新安装Oracle软件,报错缓冲区太小
回答 1
操作系统和原来一致吗?看看是不是字符集问题
Oracle 配置rac的时候用openfiler吗?
回答 1
已采纳
https://www.cnblogs.com/yhq1314/p/10637812.htmlhttps://blog.csdn.net/okhymok/article/details/7661597
请教一下各位:用ogg把表从oracle同步到mysql,如果在初始化完成之后,表数据就发生变化了,而此时用于捕获增量数据的ext进程还没有启动,那这部分变化数据岂不是没抓取到?……
回答 1
已采纳
都是先配置好抽取进程再初始化吧?
oracleDG备库重启 ,对主库会有影响吗?
回答 2
已采纳
取决于DG的保护模式,DG一共有三种保护模式,如果是最大保护模式,就会有影响。Maximumperformance:最大性能模式默认的保护模式;在不影响主库性能的情况下,提供最高级别的保护模式。Max
openldap的部署有的要求先安装Oracle数据库kerxxx DB,有的却直接安装openlad,是因为默认会带数据库吗?
回答 1
通过命令yumdeplistopenldap查看openldap的依赖,可以发现并不需要安装KerxxxDB。另外,确实是默认带一个数据库,https://www.openldap.org/doc/a
使用toad for oracle 连接远程数据库时报错:ORA-12660 加密或加密校验和参数不兼容
回答 2
你尝试把你本地的ORACLE客户端换成更高版本的试试(就是那个instantclient文件夹,带oci.dll和tnsnames.ora的),如果是低版本客户端连高版本数据库的时候,就会报这个,因为
Oracle与其他关系型数据库中的临时表,有什么区别?
回答 1
已采纳
Oracle与其他关系型数据库中的临时表非常类似,但有一个主要区别:Oracle的临时表是“静态”定义的。在Oracle数据库中只需要创建一次就可以了,无需在存储过程中,让它每次运行的时候都创建一次临
使用OGG迁移oracle数据到mysql的时候怎么初始化保证不停机迁移
回答 2
已采纳
这个是可以做到生产端oracle不停机的,步骤如下:1,配置并启动oracle端的抽取进程2,根据scn导出oracle端的数据3,将导出的数据导入到一个oracle的临时库4,将临时库的数据初始化到
alter table xxx shrink space compcat 报错:ORA-10630: Illegal syntax specified with SHRINK clause
回答 1
已采纳
语法错误 alter table <tablename> shrink space [ <null>&nb
各位大佬 问个问题 ,我手动check归档日志时候,记录有560个文件,但是我存储上归档目录文件有8k+ 归档日志是咋回事?
回答 2
有些归档太老了,估计控制文件里已经没他们的信息了