Несоответствие производительности в SQL Server Profiler между веб-запросом и тем же запросом, выполненным в SSMS

У меня есть запрос, который занимает примерно в 20 раз больше времени для выполнения SQL-сервером, когда он поступает из веб-запроса, как и при запуске точно такого же запроса через SQL Server Management Studio.

Следующий снимок экрана сделан из профилировщика SQL Server. Первые две записи относятся к получению и выполнению запроса, полученного через веб-запрос, а третья запись — это точно такой же запрос, запущенный из SSMS. Почему между ними может быть такая огромная разница?

Точка: запрос генерируется из LINQ. Я взял копию сгенерированного SQL и запустил его в SSMS, чтобы получить эти результаты.

введите здесь описание изображения


person MrBliz    schedule 24.02.2011    source источник
comment
Продолжительность включает время, необходимое для передачи данных обратно клиенту. Что вы делаете с данными в веб-приложении?   -  person Lasse V. Karlsen    schedule 24.02.2011
comment
А, я этого не понял. Веб-приложение выполняет некоторую агрегацию данных, но это занимает всего около секунды. Я думаю, что вместо этого я должен делать всю эту агрегацию на SQL Server.   -  person MrBliz    schedule 24.02.2011
comment
Что говорят логические чтения? Есть большое расхождение? Если это так, возможно, это прослушивание параметров.   -  person Martin Smith    schedule 24.02.2011


Ответы (1)


ARITHABORT включен по умолчанию в SSMS и выключен по умолчанию для соединения SqlClient. .

Посмотрите, решит ли это вашу проблему:

new SqlCommand("SET ARITHABORT ON", connection).ExecuteNonQuery();
person laktak    schedule 15.04.2013