След като установих, че в основата на проблема е връзката ADO.NET, тази нишка ме доведе до отговора.
По принцип връзките през Sql Server Management Studio (SSMS) по подразбиране имат SET ARITHABORT ON
. ADO.NET връзките не го правят.
Настройка на ARITHABORT OFF
и изпълнението на заявката директно чрез SSMS ми дава същото бавно време за отговор.
Основната разлика при изпълнение с или без тази настройка е, че за двете повиквания се създава различен план за заявка. Когато ARITHABORT
беше OFF
, командата SSMS ще използва предварително компилирания кеширан план за заявка, който ADO.NET връзката е използвала, и следователно изчакване.
Като изпълните следните команди като администратор на базата данни, всички заявки се изпълняват според очакванията, независимо от ARITHABORT
настройка.
DBCC DROPCLEANBUFFERS
DBCC FREEPROCCACHE
Мога само да предположа, че компилиран план за заявка е повреден или невалиден.
Ще използвам това като решение (аз гласувах за отговора) в другата тема
Благодаря.