查询处理器无法启动并行查询执行所需的线程资源
本文关键字:查询 线程 资源 并行 处理器 启动 执行 | 更新日期: 2023-09-27 18:11:30
这是什么意思,如何解决。
我正在运行多线程c#应用程序,访问数据库时发生此错误。
查询处理器无法启动并行查询所需的线程资源。
我在每个查询中都使用"using statements",所以我认为连接在使用后会被处理。
我如何监控是什么导致了这个?这是在一段时间后开始发生的,比如至少在1小时后。
Windows 7 64位sp1 16gb ram visual studio 2010 mssql 2008 r2 core i7 2600 @ 4.5 ghz
有一个更好的答案,更多的讨论和细节在dba.stackexchange.com。
https://dba.stackexchange.com/questions/47237/need-to-understand-parallel-query-execution-error这个问题表明您的SQL服务器线程已经很忙,无法分配任何其他线程来处理您的请求。如果你正在执行多个批次,你也可以尝试在连接字符串中通过设置"MultipleActiveResultSets=true"来启用MARS(多个活动结果集)选项。
这个错误来自于构建执行计划,它试图并行化复杂的查询。立即显示,查询不等待超时。简单的查询就像魅力一样。
解决方案是通过将最大并行度设置为1来禁用它。我不确定这种设置对性能的影响,但由于服务器上有许多并发查询,所以这不应该是一个问题。
我有同样的问题,我试图创建索引,但我得到了错误"查询处理器无法启动并行查询执行所需的线程资源",我的MAXDOP设置为64,我检查了我拥有的cpu数量-它们是24,所以我将MAXDOP设置为24,结果是相同的错误,但是当我设置为MAXDOP为1,并执行查询它工作,不确定副作用,但我再次将其设置为24,这等于处理器的数量。
希望这对你有帮助!!!!