Окружающая среда:
- ASP.NET MVC 5.2.3.0
- SQL Server 2014 (v12.0.2000.8)
- Entity Framework 6
размещено на Azure
У нас есть одна страница, которая получает данные из базы данных с помощью хранимой процедуры.
В последнее время мы заметили, что некоторое время эта страница загружается около 20 секунд. Итак, мы начали исследовать проблему. Я пытался выполнить эту хранимую процедуру прямо из Management Studio, и это заняло 150 мс + -:
Итак, следующее, что я сделал, - это создание консольного приложения, которое подключается к базе данных SQL Azure и выполняет эту хранимую процедуру:
Я также пытался использовать SqlQuery
из EF 6:
То же самое.
Важная вещь: это не постоянная проблема. Иногда такая проблема возникает, иногда работает просто отлично - 50/50.
Я проверил загрузку базы данных на портале Azure - она составляет около 50% использования dtu (во время этой проблемы с производительностью). Но я не думаю, что это связано с загрузкой базы данных, потому что она быстро выполняется из Management Studio.
В настоящее время я понятия не имею, в чем проблема, поэтому мне нужна помощь. Я хотел бы заметить, что многие сотрудники используют эту страницу (которая выполняет хранимую процедуру) все время. Может быть, это как-то связано с проблемой.
Итак, вопрос: почему так долго выполняется эта хранимая процедура с использованием ado.net / EF?