我今天已经学会了,如果你附加到你的查询
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实际上是什么)。