Супер-супер позднее предложение, но может пригодиться другим: типичная проблема, которую я видел и которая скорее применима к Java, заключается в следующем:
У вас есть запрос, который принимает строку в качестве параметра.Эта строка является критерием поиска по столбцу varchar (N) в базе данных.тем не менее, вы отправляете строковый параметр в запросе как Unicode (nvarchar (N)).Это приведет к полному сканированию таблицы и преобразованию значений каждого поля в Unicode для правильного сравнения, чтобы избежать потенциальной потери данных (если SQL Server преобразует входной параметр в не-Unicode, он может потерять информацию).
Простой тест: выполните запрос дважды (для простоты я предполагаю, что это SP):
exec spWhatever 'input'
exec spWhatever N'input'
Посмотрите, как они себя ведут.Кроме того, вы можете захотеть взглянуть на раздел «Недавние дорогостоящие запросы» на мониторе активности в SSMS и попросить план выполнения, чтобы прояснить ситуацию.
Cheers, Erik