首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WHERE语句中条件的顺序是否可以提高性能?

WHERE语句中条件的顺序是否可以提高性能?
EN

Stack Overflow用户
提问于 2010-08-18 13:54:08
回答 2查看 233关注 0票数 1

我有一个关于性能和数据库的问题。我使用MS SQL 2008。

我想知道WHERE语句中条件的顺序是否会提高或降低SELECT操作的性能。示例:

代码语言:javascript
复制
WHERE cnt.IsPublished = 1
 AND cnt.TypeContent = 'AR'
 AND cnt.ModeContent = 'AP'
 AND cnt.CategoryId = '7';

dfdfd

代码语言:javascript
复制
WHERE cnt.CategoryId = '7'
 AND cnt.TypeContent = 'AR'
 AND cnt.ModeContent = 'AP'
 AND cnt.IsPublished = ;

谢谢你们

EN

回答 2

Stack Overflow用户

发布于 2010-08-18 13:57:59

内置的查询优化器应该会为您处理此问题。但是,如果查询是未优化的,那么评估的顺序将由于短路而影响性能。

票数 1
EN

Stack Overflow用户

发布于 2010-08-18 14:00:11

如果您的数据库被正确地设置为收集表内容的统计信息,那么您的查询优化器应该能够很容易地计算出每个子句的基数,并首先处理那些减少数据集最多的子句(最高基数)。基数可以被认为是一列中有多少个唯一值。

例如,如果有一百万个不同的TypeContent值,但isPublished只有0或1,那么查询优化器应该首先处理TypeContent子句。

这意味着过时的、不正确的统计数据实际上比根本没有统计数据更糟糕。

如果数据属性定期更改,则应定期调整。请参阅here for SQL Server2008特定的统计信息,以及如何创建和维护这些统计信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3509322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档