А Вы в SQL запросе используете временные таблицы (#table)?
Дело в том, что временные таблицы живут в пределах одного соединения, а SQL Server после закрытия подключения не убивает его сразу, а держит еще некоторое время (это сделано для увеличения производительности). Таким образом при частых запросах SQL Server может отдать такое соединение со всеми временными таблицами…
Выход из этой ситуации — в SQL запросе удалять все из временных таблиц если они существуют.