sql语句的优化分析之一查询语句中左连接和函数效率分析比较

本文探讨了在表a中增加一列数据,该列数据来源于表b的方法。对比了使用左连接与函数方式获取数据的不同效果,并通过具体实验验证了不同方案的执行效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有这样两个表:

表a:记录几十条

表b:记录几万条

现在需要在表a中增加一列,该列来自表b,获取的条件是表a和表b的某一字段值相等。那么该如何做呢?

有人可能会想到用左连接,如:

select a.*,b.col

from a left out inner join b

on a.colm=b.coln

但是这样的结果是什么呢?效率如何?实验发现,效率很差,执行时间很长。。。

于是,改变策略,获取表b中的字段改用函数实现。

如:

declare @name varchar(20)

select @name=col

from b

where coln=@col

测试发现,效率提高了,但是一想,查询出的值要是不唯一,有很多怎么办,于是改为:

declare @name varchar(20)

set @name=(

select top 1 col

from b

where coln=@col

)

效率又提高了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值