这是什么意思以及如何解决。
我正在运行多线程的 C# 应用程序,当访问数据库时发生了此错误。
查询处理器无法启动必要的线程资源以进行并行查询执行。
我在每个查询中使用“using语句”,所以我假设连接在使用后被处理掉了。
我该如何监视是什么导致了这个问题?这通常会在至少1小时后发生。
Windows 7 64位 sp1 16 GB RAM Visual Studio 2010 MSSQL 2008 R2 Core i7 2600 @ 4.5 GHz
这是什么意思以及如何解决。
我正在运行多线程的 C# 应用程序,当访问数据库时发生了此错误。
查询处理器无法启动必要的线程资源以进行并行查询执行。
我在每个查询中使用“using语句”,所以我假设连接在使用后被处理掉了。
我该如何监视是什么导致了这个问题?这通常会在至少1小时后发生。
Windows 7 64位 sp1 16 GB 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服务器线程已经很忙,无法分配其他线程来处理你的请求。如果你正在执行多个批处理,你可以尝试在连接字符串中启用MARS(多活动结果集)选项,通过将其设置为“MultipleActiveResultSets=true”来实现。
我曾经遇到过同样的问题,我试图创建索引,但是出现了错误:“查询处理器无法启动必要的线程资源以进行并行查询执行”,我的MAXDOP设置为64,我检查了我的CPU数量-它们有24个,所以我将MAXDOP设置为24,结果仍然是相同的错误。但是当我将MAXDOP设置为1并执行查询时,它可以工作。不确定副作用,但我将其设置回与处理器数量相等的24。
希望这可以帮助你!