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

前端之家收集整理的这篇文章主要介绍了sql-server – 为什么多个WHERE条件缓慢查询而不是加速?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
问题是,与使用一个或两个,而不是其所有三个条件的查询运行相比,所讨论的查询运行速度非常慢。

现在查询

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

猜你在找的MsSQL相关文章