SQL 语句执行效率,该如何解决
SQL 语句执行效率
请教下 比如假设A有20万条数据
语句1: select * from A inner join B on A.name=B.name where A.ID='S072565'
也可以写成
语句1: select * from (Select * from A where ID='S072565')A inner join B on A.name=B.name
哪个速度更快
语句1是将A 全表 跟B表做关联 然后得到的数据在用where 筛选 代码看起来更简洁点
语句2是先将A表做筛选 然后再跟B做连接 感觉更快点 毕竟筛选少量的数据跟B做关联 。
------解决思路----------------------
你看一下执行计划,他们是一样的,所以并不存在效率高低问题。
------解决思路----------------------
SQLSERVER 查询优化器会把两种方式转化成一个执行计划,所以没区别
------解决思路----------------------
别以为SQL是傻子,能够优化的地方都已经自动优化了.
请教下 比如假设A有20万条数据
语句1: select * from A inner join B on A.name=B.name where A.ID='S072565'
也可以写成
语句1: select * from (Select * from A where ID='S072565')A inner join B on A.name=B.name
哪个速度更快
语句1是将A 全表 跟B表做关联 然后得到的数据在用where 筛选 代码看起来更简洁点
语句2是先将A表做筛选 然后再跟B做连接 感觉更快点 毕竟筛选少量的数据跟B做关联 。
------解决思路----------------------
你看一下执行计划,他们是一样的,所以并不存在效率高低问题。
------解决思路----------------------
SQLSERVER 查询优化器会把两种方式转化成一个执行计划,所以没区别
------解决思路----------------------
别以为SQL是傻子,能够优化的地方都已经自动优化了.