【发布时间】:2012-10-19 13:58:38
【问题描述】:
我有一个在多核系统上运行的存储过程。它以多线程方式执行。由于(可能是)查询中的某些事情,某些线程的执行将永远挂起,并带有 cx_packet 等待和锁定。有没有办法强制单线程执行? (我知道这不是最好的解决方案,但至少在查询得到更好的优化之前很有帮助。)
【问题讨论】:
标签: sql-server database stored-procedures single-threaded
我有一个在多核系统上运行的存储过程。它以多线程方式执行。由于(可能是)查询中的某些事情,某些线程的执行将永远挂起,并带有 cx_packet 等待和锁定。有没有办法强制单线程执行? (我知道这不是最好的解决方案,但至少在查询得到更好的优化之前很有帮助。)
【问题讨论】:
标签: sql-server database stored-procedures single-threaded
您可以将OPTION (MAXDOP 1) 添加到您希望单线程运行的语句中。示例
SELECT *
FROM master..spt_values
OPTION (MAXDOP 1)
【讨论】:
MAXDOP=1 从工作负载组运行该过程