sql server 2005查询范围越小越慢

来源:百度知道 编辑:UC知道 时间:2024/05/17 23:05:45
我做了个信息查询系统,发现个奇怪的现象。
我查询1月1日到10月31日符合某个条件的记录时只要1、2秒。
但是查询10月1日到10月31日的同样条件的记录时,居然要2、3分钟。
(两次查询只有时间段不同,其他条件都一样。)
百思不得其解。希望高手解惑,谢谢!
1、记录不全在这范围里面,只是举个例子。
2、用in的话会导致查询范围小反而更慢吗?还是用exists会导致这个现象

你提的这种情况,跟in \exists没有关系,跟表的索引以及你的查询语句有关,最好能吧表的索引以及查询语句列出来看看。
或者自己用查询分析器的执行计划功能,分析两次查询在执行过程上的差异,就能找到原因。

你用的是IN?(后面条件)
如果存在大量数据的话,用EXISTS会好很多,如果(后面条件数量少),用IN快。

用exists范围小会更慢,范围小用IN,范围大用exists

是不是所有记录都在1月1日到10月31日之间

记住 千万不要用in或者not in
效率忒低