| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1886 人关注过本帖
标题:执行相同语句不同消耗时间问题,求解。
只看楼主 加入收藏
ganyubin
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2015-3-17
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
执行相同语句不同消耗时间问题,求解。
问题现象如下:

SQL2005
数据库201910
   执行语句 select 字段A from 表1 where 字段A not in(select 字段A from 表2)
   执行消耗时间11秒
   表1数据30条,字段A主键
   表2数据318万条,字段A非主键非索引

问题来了,几天之前同样的语句执行结果只需要不到一秒
为验证,恢复一个月前的数据库201909到相同数据引擎下。

数据库201909
   执行语句 select 字段A from 表1 where 字段A not in(select 字段A from 表2)
   执行消耗时间0秒
   表1数据30条,字段A主键
   表2数据311万条,字段A非主键非索引

为了测试是不是数据量到了临界值,于是又恢复了一年前的数据库201810到同数据引擎下。
数据库201810
   执行语句 select 字段A from 表1 where 字段A not in(select 字段A from 表2)
   执行消耗时间8秒
   表1数据30条,字段A主键
   表2数据225万条,字段A非主键非索引

相同语句不同耗时,与数据量大小无关,为啥呢?
在三库多次测试这条语句所耗时间,结果比较稳定,误差1秒内。
至此完全蒙圈,此题何解?


   
搜索更多相关主题的帖子: 语句 执行 时间 数据 字段 
2019-10-10 10:56
mywisdom88
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:191
帖 子:3146
专家分:8408
注 册:2015-3-25
收藏
得分:20 
SQL中 NOT IN使用不到索引,肯定很慢
-- not in 改为关联 left join
select 字段A from 表1 as b1
left join 表2 as b2
on b1.字段A=b2.字段A
where b2.字段A is null
2019-10-15 10:20
sssooosss
Rank: 9Rank: 9Rank: 9
等 级:禁止访问
威 望:3
帖 子:664
专家分:1115
注 册:2019-8-27
收藏
得分:0 
学习
2020-06-16 09:52
快速回复:执行相同语句不同消耗时间问题,求解。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015330 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved