暂无图片
select * from a,b where a.id=b.id; 如果a有100行数据,b有100万行数据,a与b是1:N关系,N很低,应该怎样优化SQL?
我来答
分享
三阳
2023-05-22
select * from a,b where a.id=b.id; 如果a有100行数据,b有100万行数据,a与b是1:N关系,N很低,应该怎样优化SQL?

 select * from a,b where a.id=b.id; 如果a有100行数据,b有100万行数据,a与b是1:N关系,N很低,应该怎样优化SQL?

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

因为a与b是1:N关系,N很低,可以在b的连接列(id)上创建索引,让a与走嵌套循环(a nl b),这样b表会被扫描100次,但是每次扫描表的时候走的是id列的索引(范围扫描)。如果让a和b进行HASH连接,b表会被全表扫描(因为没有过滤条件),需要查询表中100万行数据,而如果让a和b进行嵌套循环,b表只需要查询出表中最多几百行数据(100*N)。

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


请输入正文
提交
相关推荐
各位大佬,谁有Oracle数据库安全整体建设的相关资料,主要包括: 利用Oracle自有的技术;利用第三方安全工具;数据库安全管理等方面
回答 1
数据安全可参考:https://www.modb.pro/doc/8027
oracle 打完补丁后的脚本问题
回答 6
已采纳
按文档执行就行,没啥
ora-00205:????????? 控制文件打不开
回答 4
@JiekeXu不是的,我已经复制O1MFHNJQ0M57.CTL并粘贴到C:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROLFILE\然后重命名为control02.c
AWR分析报告问题求助:看不懂要调啥试试
回答 1
建议:1.将严重级别的sql都尽可能的优化掉,2. 手工调整SGA和PGA大小至于参数的调整最好经过测试后再调整。
Oracle 数据迁移到 postgreSQL,有没有开源工具推荐?
回答 4
已采纳
阿里datax
Oracle 进行TDE加密后无法恢复备份
回答 2
看看是不是文件太大了,超过官网限制最大值了?
安装单机rac报错,安装过程没有出现问题,都是顺利安装,grid软件安装完以后,进行查看集群状态和asmcmd共享盘提示报错
回答 4
1、操作系统上实际有没有这个文件呢?/g01/app/12.2.0/grid/perl/lib/siteperl/5.10.0/x8664linuxthreadmulti/auto/DBD/Oracl
看懂执行计划谓词
回答 3
执行计划使用的是filter, 你这个where 条件像是子查询里面的. 这种问题最好是能把完整的sqltext给出来.
等待事件lgwr
回答 4
也要检查操作系统io相关指标,iostat,dstat
优化-存储过程调用远端库的视图,运行缓慢
回答 8
暂无文字回复
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~