"and not" vs "or" t sql全文搜索
Posted
技术标签:
【中文标题】"and not" vs "or" t sql全文搜索【英文标题】:"and not " vs "or" t sql full text search 【发布时间】:2015-07-09 02:59:22 【问题描述】:我遇到了查询性能问题。我的 where 子句包含,
where .....(type = c) and not (( type = a ) or contains ( ftstype, N'b' ))
如果没有“and not”部分,查询似乎更快。
我想检查“and”是否比“or”更便宜,以便我可以使用以下(根据 demorgans 规则,[c and (a or b)' = c and (a' and b ')])
where .....(type = c) and ( not ( type = a ) and not contains ( ftstype, N'b' ))
我还想检查查询优化器是否考虑了这种转换,以及确定更好的执行计划。 (我不了解 SQL 服务器估算计划。)
【问题讨论】:
你应该为你的请求的每个版本提供 sql server 估计计划。 【参考方案1】:如果我没记错的话(我自己有点初学者),“或”选项的成本会更低。使用“或”选项,如果类型不是“a”,甚至在到达代码的“不包含(ftstype N'b'))”部分之前,您将短路处理完整的查询。
这样的事情怎么办……
WHERE ..... (type = c) AND (( type != 'a' ) OR ( ftstype != N'b'))
让我知道你的发现,因为我还在学习。
【讨论】:
以上是关于"and not" vs "or" t sql全文搜索的主要内容,如果未能解决你的问题,请参考以下文章
Content-Type header is "text/html", not "application/json"
The specified value "2019-1-2" does not conform to the required format, "yyyy-MM-dd&q
org.json.JSONException: JSONObject["shophours"] not found.
log4j:ERROR A "org.apache.log4j.DailyRollingFileAppender" object is not assignable to a &q
断言失败: (SourceMgr && "SourceManager not set!") with oclint-json-compilation-databas