Переход к Aync с Dapper может вызывать SQL Azure «Предел запросов для эластичного пула равен 100 и был достигнут» - PullRequest
0 голосов
/ 22 октября 2019

Я недавно начал регистрировать эти ошибки в моем приложении, работающем в службе приложений Azure, с помощью dotnetcore v2.2 и SQL Azure, отправляющими его:

The request limit for the elastic pool is 100 and has been reached.

Когда они начали появлятьсяЯ изменил две вещи:

  • Я переместил несколько вещей в Функции Azure (C # / Core), но я не думаю, что они, вероятно, являются источником проблемы, поскольку они возникают только дваждыминуту.
  • Я реорганизовал все вызовы данных (сделанные через Dapper), чтобы использовать варианты async. У меня нет ни одного предупреждения компилятора о возможности не ждать чего-либо, поэтому я считаю, что в целом это правильно, но такое ощущение, что это не следствие.

worker percentage usage

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

1 Ответ

0 голосов
/ 22 октября 2019

Пожалуйста, попробуйте изменить Макс. Степень параллелизма на 1 на уровне базы данных. Запустите следующий оператор с именем входа с правами администратора в ваших базах данных.

ALTER DATABASE SCOPED CONFIGURATION SET MAXDOP = 1;

Лучшим вариантом может быть запуск операторов баз данных, поступающих из ваших приложений, с помощью подсказки OPTION (MAXDOP 1).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...