查询时的奇怪问题!

bcbsoft 2008-08-18 10:38:27
xsb是销售记录表,其中有48000多条记录
kcb是库存表,其中有1900多条记录

查询SQL如下:
select * from xsb
where 销售日期>='2008-7-20' and 销售日期<='2008-8-16'
and 商品编号 IN ( select 商品编号 from kcb where 供货商 like 'GZJCYYYXGS' )

查询居然需要10秒钟,如果把前面的销售日期>='2008-7-20' 改成7月20日前的任意一天,速度就相当快,一闪就出结果。

请问各位会是什么原因引起的?
...全文
58 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
bcbsoft 2008-08-18
  • 打赏
  • 举报
回复
谢谢!是索引的问题!
中国风 2008-08-18
  • 打赏
  • 举报
回复
在销售日期建上聚集索引时,性能更快,供货商 上需要建上索引
中国风 2008-08-18
  • 打赏
  • 举报
回复
select * from xsb a 
where 销售日期>='2008-7-20' and 销售日期 <='2008-8-16'
and exists ( select 1 from kcb where 商品编号=a.商品编号 and 供货商 ='GZJCYYYXGS' ) --供货商改为=,条件用exists

--或
select
a.*
from
xsb a
join
kcb b on a.商品编号=b.商品编号
where
a.销售日期>='2008-7-20' and a.销售日期 <='2008-8-16' and b.供货商 ='GZJCYYYXGS'


22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧