【问题标题】:The request limit for the database is 30 and has been reached: which statuses of request count for this error?数据库的请求限制为 30 并且已达到:该错误的请求计数的哪些状态?
【发布时间】:2019-06-01 10:39:57
【问题描述】:

尝试在函数应用程序中调用 SQL 查询时出现此错误。 我的计划是获取当前活动请求的数量以避免上述限制请求错误。 我看到SQL请求有这些状态:休眠、运行、后台、回滚、挂起、可运行、自旋循环、挂起。

你们知道限制错误算什么状态吗?

【问题讨论】:

  • 您现在如何在代码中管理 SQL 连接?

标签: sql sql-server azure azure-sql-database


【解决方案1】:

您可以运行以下查询:

-- 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;

【讨论】:

    【解决方案2】:

    “数据库的请求限制为30,已达到”

    与上述错误相关的请求计数最有可能的状态是“正在运行”,即当前正在处理的任务。在他们的任务完成之前,所有工作人员都很忙,并且无法接手待处理的任务,因此将不接受会创建新待处理任务的传入请求。

    "The maximum number of sessions and workers are determined by the service tier and compute size (DTUs and eDTUs). New requests are rejected when session or worker limits are reached, and clients receive an error message."

    该错误并不意味着您必须增加最大值。函数应用可能进行了太多调用。或者可能存在性能不佳的查询占用资源,从而导致完成时间过长。

    如果您想增加最大值,对于 Azure SQL 数据库,从 Basic 开始的下一层将是 Standard/S0,具有 60 个并发工作人员(请求)。您可以查看所有层级及其限制here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-16
      • 1970-01-01
      • 2018-05-10
      • 1970-01-01
      • 1970-01-01
      • 2021-12-20
      • 1970-01-01
      相关资源
      最近更新 更多