子查询驱动外部查询走NL和Hash的性能比较

本文探讨了在数据库查询中,子查询驱动外部查询时使用NL(Nested Loop)连接与Hash连接的性能差异。通过实际测试,阐述了在不同场景下两种方法的优劣,为优化SQL执行计划提供了参考。
摘要由CSDN通过智能技术生成
总结:在工作中,在t1表的object_id是主键,T1表是50个G,T2表是30M,这个时候用T2表来做驱动表,T1表做被驱动表,

走NL是比较理想的执行计划

测试:

我在这里进行模拟测试的T1有1000000的数据量,大概是120 M,T2表有200000的数据量,大概是23 M,(1)、创建表:
exec create_table('t1',1000000);
exec create_table('t2',200000);


(2)、先看一下这个子查询的执行计划
select * from t1 where object_id in (select object_id from t2);


已选择200000行。


已用时间:  00: 00: 10.82


执行计划
----------------------------------------------------------
Plan hash value: 1275841967


---------------------------------------------------------------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值