问题在于,与使用一两个条件而不是全部三个条件运行的查询相比,所讨论的查询运行速度非常慢。
现在查询。
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')
返回 684048秒.
当我仅使用邮政编码和全文条件时,我得到 49194秒.
仅凭日期和全文条件,我就可以在不到 9481 的时间内得到结果14秒.
使用日期和邮政编码条件仅给出 323814秒.
对于所有三个条件,查询将返回 7232分53秒. (wtfbbq)
知道原因的唯一方法是检查执行计划。
尝试将 SHOWPLAN_TEXT 设置为 ON https://www.google.com/search?q=SET+SHOWPLAN_TEXT+ON.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)