假设我在server 2008 R2实例上运行了一个服务器端跟踪,该实例具有Maxdop = 1,然后通过readtrace.exe运行跟踪以获得用于重放的RML文件。
重播是否保留了Maxdop =1的实例级设置,使任何查询都不会在maxdop = 0服务器上并行运行?
当我查看我的跟踪时,我在EventSubClass中看到了许多被称为“并行度”的事件。当针对不同实例重放查询时,这会强制执行maxdop = 1吗?
发布于 2014-06-30 14:17:55
并行度事件实际上记录的是BinaryData列中的查询并行性,而不是EventSubClass。请参见这里:
0x00000000, indicates a serial plan running in serial.
0x01000000, indicates a parallel plan running in serial.
>= 0x02000000 indicates a parallel plan running in parallel.从我的简单测试中,RML或跟踪重播不会强制执行并行事件的程度,这是有意义的,因为服务器级maxdop或本地MAXDOP查询提示可能会覆盖这一点。Server通常还根据可用资源决定是否在查询执行时并行。此事件也是在查询启动后收集的,并且似乎不是在重放模式下执行任务的事件之一,比如SQL:BatchStarted,例如,如果您执行了重放跟踪,在此事件中什么都不会发生。
HTH
https://dba.stackexchange.com/questions/69343
复制相似问题