问题是,与使用一个或两个,而不是其所有三个条件的查询运行相比,所讨论的查询运行速度非常慢。
现在查询。
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)