Sql WHERE语句可以提高性能的条件顺序?

Sql WHERE语句可以提高性能的条件顺序?,sql,performance,Sql,Performance,我有一个关于性能和数据库的问题。我使用MS SQL 2008 我想知道WHERE语句中的条件顺序是否会提高或降低SELECT操作的性能。 例如: DFD 谢谢大家内置查询优化器应该为您解决这个问题。但是,如果查询未优化,则由于短路,计算顺序会影响性能。内置查询优化器应该为您解决这一问题。但是,如果查询未优化,则由于短路,评估顺序会影响性能。如果数据库设置正确,可以收集表内容的统计信息,然后,您的查询优化人员应该能够轻松地计算出每个子类的基数,并首先处理那些减少数据集的基数最多的子类(最高基数)。

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

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

DFD


谢谢大家

内置查询优化器应该为您解决这个问题。但是,如果查询未优化,则由于短路,计算顺序会影响性能。

内置查询优化器应该为您解决这一问题。但是,如果查询未优化,则由于短路,评估顺序会影响性能。

如果数据库设置正确,可以收集表内容的统计信息,然后,您的查询优化人员应该能够轻松地计算出每个子类的基数,并首先处理那些减少数据集的基数最多的子类(最高基数)。基数可以看作是一列中有多少个唯一值

例如,如果有一百万个不同的
TypeContent
值,但
isPublished
仅为0或1,则查询优化程序应首先处理
TypeContent
子句

但这就是为什么数据库调优不是一个“置诸不理”的操作。数据库的性能既取决于模式,也取决于表中保存的数据。这意味着过时的、不正确的统计数据实际上比没有统计数据更糟糕。至少在没有统计数据的情况下,乐观主义者不会费心使用它们


如果数据属性定期更改,则应定期调整。有关SQL Server 2008特定的统计信息,以及如何创建和维护它们,请参阅。

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

例如,如果有一百万个不同的
TypeContent
值,但
isPublished
仅为0或1,则查询优化程序应首先处理
TypeContent
子句

但这就是为什么数据库调优不是一个“置诸不理”的操作。数据库的性能既取决于模式,也取决于表中保存的数据。这意味着过时的、不正确的统计数据实际上比没有统计数据更糟糕。至少在没有统计数据的情况下,乐观主义者不会费心使用它们

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

WHERE cnt.IsPublished = 1
 AND cnt.TypeContent = 'AR'
 AND cnt.ModeContent = 'AP'
 AND cnt.CategoryId = '7';
WHERE cnt.CategoryId = '7'
 AND cnt.TypeContent = 'AR'
 AND cnt.ModeContent = 'AP'
 AND cnt.IsPublished = ;