select id,PName,remark,impdate,upstate from
(SELECT Info.id,Info.PName, Info.remark, Info.impdate,Info.upstate, bakInfo.id AS bakID
FROM Info left JOIN
bakInfo ON Info.id = bakInfo.id ) as t
where t.bakID is null and t.upstate=0
GO
SET STATISTICS TIME OFF;
此操作执行时间:
SQL Server 分析和编译时间:
CPU 时间 = 247 毫秒,占用时间 = 247 毫秒。
SQL Server 执行时间:
CPU 时间 = 406 毫秒,占用时间 = 475 毫秒。
(100000 行受影响)
SQL Server 分析和编译时间:
CPU 时间 = 0 毫秒,占用时间 = 1 毫秒。
–更改当前表状态
update Info set upstate=1
FROM Info INNER JOIN
bakInfo ON Info.id = bakInfo.id
此操作执行时间:
SQL Server 分析和编译时间:
CPU 时间 = 4 毫秒,占用时间 = 4 毫秒。
SQL Server 执行时间:
CPU 时间 = 219 毫秒,占用时间 = 259 毫秒。
(100000 行受影响)
SQL Server 分析和编译时间:
CPU 时间 = 0 毫秒,占用时间 = 1 毫秒。
–删除当前表数据
delete from Info
FROM Info INNER JOIN
bakInfo ON Info.id = bakInfo.id
where Info.upstate=1
此操作执行时间:
SQL Server 分析和编译时间:
CPU 时间 = 177 毫秒,占用时间 = 177 毫秒。
SQL Server 执行时间:
CPU 时间 = 219 毫秒,占用时间 = 550 毫秒。
(100000 行受影响)
SQL Server 分析和编译时间:
CPU 时间 = 0 毫秒,占用时间 = 1 毫秒。
可以看出使用join方案比使用not in 和in执行时间要短很多了
您可能感兴趣的文章:浅谈MySQL中优化sql语句查询常用的30种方法sql语句优化之用EXISTS替代IN、用NOT EXISTS替代NOT IN的语句SQL SERVER 的SQL语句优化方式小结MySQL SQL语句优化的10条建议Mysql查询最近一条记录的sql语句(优化篇)SQL Server中的SQL语句优化与效率问题常用SQL语句优化技巧总结【经典】SQL语句优化方法30例(推荐)如何优化SQL语句的心得浅谈你真的知道怎么优化SQL吗










