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。 解决方法知道为什么要检查执行计划的唯一方法。尝试 SET SHOWPLAN_TEXT ON。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |