SQL Server 2008 优化

SQL Server 2008 优化

我今天了解到,如果你在查询中添加

OPTION (MAXDOP 0)

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

我知道查询优化的一般准则(使用索引、仅选择所需的字段等),我的问题是关于 SQL Server 优化。也许更改配置中的某些选项或其他任何内容。

SQL Server 优化有哪些指导原则?

谢谢。

附言我想,这不是询问服务器相关问题的合适地方。我应该删除它还是可以将其迁移到 serverfault?

答案1

我今天学到了,如果

建议:至少阅读一次手册。整个“选项”都有很好的文档记录,你可能会惊讶于你还能学到多少东西。

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

不,这不是 MAXDOP 所做的。在正常情况下,它绝对不做任何事情。明白了吗 - 你学到了废话 ;)

开始了:

MaxDOP 选项定义最大并行度。它不是说“使用更多处理器”,而是说“达到最大并行度 X”,如果 X = 0,则表示处理器数量。

然而,问题就在这里——MaxDOP 的系统范围设置已经为 0,所以在正常情况下,它不会按照您想要的方式执行任何操作。

它的作用是进一步限制查询的最大执行速度,因为这样做毫无意义(因为它不会自动使查询运行得更快 - 实际上会使查询运行得更慢)。在这些情况下,特定用户可能希望选项(maxdop 1)比默认设置更受限制。您可以在以下网址阅读更多信息:http://msdn.microsoft.com/en-us/library/ms181007.aspx

话虽如此,MaxDOP 是一个很难掌握的难题——在 99% 的情况下,将 maxdop 放入查询中是没有意义的。

SQL Server 优化有哪些指导原则?

没有。适用标准 SQL 原则(仅请求您需要的内容、具有适当的索引等)。其余的很少使用 - 因此通用原则不适用(因为它们很少见 - 通用指南:不要使用它们)。

顺便说一下,这些指南被称为文档。

像往常一样(您的帖子就是一个很好的例子),有限的知识往往是一件事:完全错误(因为您甚至不知道 MaxDop 0 实际上做了什么)。

相关内容