Ошибка тайм-аута SQL с «более быстрыми» запросами - PullRequest
1 голос
/ 25 ноября 2010

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

Истекло время ожидания. Время ожидания истекло до завершения операции или сервер не отвечает.

Я передаю набор опций sproc. Когда набор параметров не включает в себя параметры, которые могли бы инициировать больше объединений таблиц и больший набор результатов, возникает вышеупомянутое исключение. Я думал, что решил эту проблему ранее, увеличив свойство Connection Timeout в строке подключения, но, похоже, это не так.

Кто-нибудь знает, как я могу решить эту проблему? Я прошел через SQL profiler и выполнил запрос, используя как меньшие, так и большие входные данные, и результаты были ожидаемыми. При меньшем вводе запрос выполняется значительно быстрее (но время ожидания для клиента), а при большем запросе он выполняется медленнее (но возвращает результат клиенту).

1 Ответ

0 голосов
/ 25 ноября 2010

только с точки зрения производительности, добавьте с (nolock) с каждым запросом, чтобы минимизировать вероятность мертвой блокировки (при условии, что существует вероятность мертвой блокировки)

...