SQL Server 2008优化

我今天已经学会了,如果你附加到你的查询

OPTION (MAXDOP 0) 

您的查询将运行在多个处理器上,如果它是巨大的查询,查询将执行得更快。

我知道查询优化的一般准则(使用索引,只select需要的字段等),我的问题是关于SQL Server优化。 也许改变configuration或其他任何选项。

SQL Server优化有哪些准则?

谢谢。

PS我想,这是不正确的地方问服务器有关的问题。 我应该删除它,也许它可以迁移到serverfault?

我今天学会了,如果

build议:阅读手册,至less一次。 整个“选项”的东西都有很好的文档logging,你可能会惊讶,你可以学到多less东西。

您的查询将运行在多个处理器上,如果它是巨大的查询,查询将执行得更快

不,这不是MAXDOP所做的。 在正常情况下,它绝对没有什么。 知道了 – 你学了hogwash;)

开始了:

MaxDOP选项定义了最大并行度。 它没有说“使用更多的处理器”,它说“去最大并行X”,如果X = 0,这是处理器的数量。

这里有一个问题 – MaxDOP的系统范围已经设置为0,所以在正常情况下,它不会以你想要的方式做任何事情。

有用的是限制最大Peralellism更进一步查询哪里没有任何意义(因为不,它不会自动使查询运行更快 – 它实际上可以使其运行速度慢很多)。 在这些情况下,特定的用户可能会喜欢一个选项(maxdop 1)是默认设置的限制。 您可以在http://msdn.microsoft.com/en-us/library/ms181007.aspx上阅读更多内容

这就是说,MaxDOP是一个非常棘手的问题 – 在99%的情况下,将maxdop放入查询是毫无意义的。

SQL Server优化有哪些准则?

没有了。 标准的SQL原则适用(只要求你需要什么,有适当的指标等)。 其余的很less被使用的选项 – 所以通用的原则不适用(因为它们是罕见的 – 通用指南:不使用它们)。

这些指导原则是被称为文件。

像往常一样(你的文章是一个很好的例子)有限的知识往往是一回事:完全错误的(因为你甚至不知道MaxDop 0实际上是什么)。