加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server – 为什么多个WHERE条件缓慢查询而不是加速?

发布时间:2020-12-12 06:56:50 所属栏目:MsSql教程 来源:网络整理
导读:问题是,与使用一个或两个,而不是其所有三个条件的查询运行相比,所讨论的查询运行速度非常慢。 现在查询。 Select Count(*)From SearchTable Where [Date] = '8/1/2009' AND [Zip] In (Select ZipCode from dbo.ZipCodesForRadius('30348',150)) AND FreeTe
问题是,与使用一个或两个,而不是其所有三个条件的查询运行相比,所讨论的查询运行速度非常慢。

现在查询。

Select Count(*)
From 
    SearchTable 
Where 
    [Date] >= '8/1/2009' 
    AND 
    [Zip] In (Select ZipCode from dbo.ZipCodesForRadius('30348',150))
    AND 
    FreeText([Description],'keyword list here')

第一个条件是自我解释。第二个使用UDF获得在30348的150英里内的邮政编码清单。第三个使用全文索引来搜索提供的单词。

只有这个条件

[Date] >= '8/1/2009'

查询返回43884(表格大小在500k行以下)3秒钟。

仅使用这种条件

[Zip] In (Select ZipCode from dbo.ZipCodesForRadius('30348',150))

我得到27920,也在3秒内返回。

并且只有全文部分

FreeText([Description],'keyword list here')

68404在8秒内返回。

当我只使用邮政编码和全文条件时,我在4秒内得到4919。
只是日期和全文的条件让我9481只是害羞的14秒。
使用日期和邮政编码条件只能在14秒内给我3238。
在所有三个条件下,查询在2分钟53秒内返回723。 (wtfbbq)

解决方法

知道为什么要检查执行计划的唯一方法。
尝试 SET SHOWPLAN_TEXT ON。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读