Предел запросов для базы данных составляет 30 и был достигнут: какие статусы запросов учитываются для этой ошибки? - PullRequest
0 голосов
/ 01 июня 2019

Я получил эту ошибку при попытке вызвать SQL-запросы внутри приложения-функции. Мой план состоит в том, чтобы получить номер текущего активного запроса, чтобы избежать ошибки запроса лимита выше. Я видел, что SQL-запрос имеет следующие состояния: неактивный, запущенный, фоновый, откат, ожидающий, работоспособный, spinloop, приостановленный.

Ребята, вы знаете, в каких состояниях учитывается ошибка ограничения?

Ответы [ 2 ]

0 голосов
/ 05 июня 2019

"Предел количества запросов для базы данных равен 30 и достигнут"

Состояние, которое, скорее всего, относится к количеству запросов относительно вышеуказанной ошибки, или, скорее, на что вы должны обратить внимание, будет «запущено» - задачи, которые в данный момент обрабатываются. Все работники заняты до тех пор, пока их задача не будет выполнена, и не могут выбрать ожидающую задачу, поэтому входящие запросы, которые могут создать новые отложенные задачи, не будут приняты.

"Максимальное количество сеансов и рабочих определяется уровнем обслуживания и размером вычислений (DTU и eDTU). Новые запросы отклоняются при достижении лимитов сеансов или рабочих, и клиенты получают сообщение об ошибке."

Ошибка не означает, что вам нужно увеличить макс. Приложение-функция может делать слишком много звонков. Или могут быть неэффективные запросы, которые занимают много ресурсов, что приводит к длительному времени выполнения.

Если вы хотите увеличить максимальное значение для базы данных SQL Azure, следующим уровнем по сравнению с Basic будет Standard / S0 с 60 одновременными рабочими (запросами). Вы можете увидеть все уровни и их пределы здесь .

0 голосов
/ 02 июня 2019

Вы можете выполнить следующие запросы:

-- 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...