当尝试在Function App中调用SQL查询时遇到此错误。 我的计划是获取当前活动请求的数量,以避免上面的限制请求错误。 我看到SQL请求具有以下状态:休眠,运行,后台,回滚,挂起,可运行,spinloop,已暂停。
你们知道极限错误计数的哪些状态吗?
答案 0 :(得分:0)
您可以运行以下查询:
-- Run on master
SELECT * FROM sys.resource_stats ORDER BY end_time DESC;
或
SELECT * FROM sys.dm_db_resource_stats ORDER BY end_time DESC;
您可以检查这些查询的max_session_percent和max_worker_percent值。
我的建议是在查询中添加OPTION(MAXDOP 1)或在数据库级别设置最大并行度。
ALTER DATABASE SCOPED CONFIGURATION SET MAXDOP = 1;
答案 1 :(得分:0)
“数据库的请求限制为30,并且已达到”
最有可能与上述错误有关的请求计数或您应该查看的状态为“正在运行”-当前正在处理的任务。所有工作人员都忙于任务完成,无法接管待处理的任务,因此将不会接受将创建新的待处理任务的传入请求。
该错误并不意味着您必须增加最大值。该功能应用可能调用过多。否则,可能会有性能不佳的查询占用资源,从而导致较长的完成时间。
如果要增加最大值,对于Azure SQL数据库,从Basic出发的下一层是Standard / S0,具有60个并发工作程序(请求)。您可以看到所有层及其限制here。