Ответ 1
Как и другие ответы, sp_reset_connection
указывает, что пул соединений повторно используется. Помните об одном конкретном следствии!
Блог MSDN Jimmy Mays сказал:
sp_reset_connection НЕ resetуровень изоляции транзакций по умолчанию для сервера настройка соединения.
ОБНОВЛЕНИЕ. Начиная с SQL 2014, для клиентских драйверов с TDS версии 7.3 или выше уровни изоляции транзакций будут reset вернуться к умолчанию.
ref: SQL Server: утечка уровня изоляции через объединенные соединения
Ниже приведена дополнительная информация:
Что делает sp_reset_connection?
Уровни API доступа к данным, такие как ODBC, OLE-DB и System.Data.SqlClient все вызвать внутреннюю хранимую процедуру sp_reset_connection при повторном использовании соединение из пула соединений. Это делает это с reset состоянием прежде чем он будет повторно использован, однако нигде не зафиксировано, что вещи получают reset. Эта статья пытается для документирования частей соединение, которое получает reset.
sp_reset_connection сбрасывает следующие аспекты связи:
Все состояния и числа ошибок (например, ошибка @@)
Останавливает все EC (контексты выполнения) которые являются дочерними потоками родительского EC выполнение параллельного запроса
Ожидает каких-либо выдающихся операций ввода-вывода операции, которые выдаются
Сбрасывает любые удерживаемые буферы на сервер по соединению
Разблокирует любые буферные ресурсы которые используются соединением
Освобождает всю выделенную память принадлежащих соединению
Удаляет любую работу или временную таблицы, созданные связь
Убивает все глобальные курсоры, принадлежащие связь
Закрывает все открытые дескрипторы SQL-XML, открытые
Удаляет любые рабочие таблицы, связанные с SQL-XML
Закрывает все системные таблицы
Закрывает все пользовательские таблицы
Удаление всех временных объектов
Прерывает открытые транзакции
Дефекты от распределенной транзакции при зачислении
Уменьшает количество ссылок для пользователей в текущей базе данных, которые освобождает блокировки общих баз данных
Заблокированные блокировки
Освобождает любые приобретенные ручки
Сбрасывает все параметры SET до значений по умолчанию
Сбрасывает значение @@rowcount
Сбрасывает значение @@identity
Сбрасывает трассировку уровня сеанса опции с использованием dbcc traceon()
Сбрасывает CONTEXT_INFO в
NULL
в SQL Server 2005 и новее [не входит в исходную статью]sp_reset_connection НЕ будет reset:
Контекст безопасности, поэтому соединение объединяет соединения на основе точной строки соединения
Введенные роли приложения используя sp_setapprole, поскольку приложение роли не могут быть возвращены
Примечание. Здесь я включаю список, так как я не хочу, чтобы он был потерян в любой временной сети.