我有一个包含许多SELECT命令的存储过程.
而不是把的OPTION (MAXDOP 8)在每一个选择命令的结束,是有办法,我可以在存储过程的开始设置和结束时将其删除,实际上并没有将它设置在服务器上?
恩.
sp_configure 'max degree of parallelism', 4
go
reconfigure with override
Run Code Online (Sandbox Code Playgroud)
小智 13
我希望有一种方法可以为proc的范围设置MAXDOP,但我同意没有办法做到这一点.
为了对抗上面的一些建议,使用MAXDOP提示有很大的理由,例如在多处理器环境中进行非工作时间索引构建,更新或数据构建,但MAXDOP设置低于处理器数量以帮助平衡活动在繁忙的"高峰"时段,例如正常营业时间.与某些提示(如索引提示)不同,这不会强制您的进程使用更多线程,但如果计划选择,它将使其能够执行此操作.
如果你将线程加倍,一些索引构建的执行速度几乎会快两倍,因此有一个真正的好处.
可悲的是没有。
您的选项是使用在服务器级别设置它
sp_configure 'max degree of parallelism',或者更新存储过程中的每个 SELECT 语句以使用OPTION (MAXDOP 8)。
也就是说,查询选项应该是最后的手段,如果您的查询表现不佳,则可能存在潜在问题。
| 归档时间: |
|
| 查看次数: |
19537 次 |
| 最近记录: |