Слоевете на API за достъп до данни като ODBC, OLE-DB и SqlClient извикват (вътрешната) съхранена процедура sp_reset_connection при повторно използване на връзка от пул за връзки. Прави това, за да нулира състоянието на връзката, преди да бъде използвана повторно.
Изглежда няма официална документация за това кои неща се нулират, но ето неофициален списък.
sp_reset_connection нулира следните аспекти на връзката:
- Възстановява всички състояния на грешки и числа (като @@error)
- Спира всички EC (изпълнителни контексти), които са дъщерни нишки на видима EC, изпълняващи паралелна заявка
- Той ще изчака всички неизпълнени I/O операции, които са неизпълнени
- Ще освободи всички задържани буфери на сървъра от връзката
- Той ще отключи всички буферни ресурси, които се използват от връзката
- Той ще освободи цялата памет, разпределена от връзката
- Ще изчисти всички работни или временни таблици, създадени от връзката
- Ще убие всички глобални курсори, притежавани от връзката
- Ще затвори всички отворени SQL-XML манипулатори, които са отворени
- Ще изтрие всички отворени работни таблици, свързани с SQL-XML
- Ще затвори всички системни таблици
- Ще затвори всички потребителски таблици
- Ще изхвърли всички временни обекти
- Ще прекъсне отворените транзакции
- Той ще се отклони от разпределена транзакция, когато бъде включен
- Това ще намали броя на препратките за потребители в текущата база данни;които освобождават заключването на споделената база данни
- Ще освободи придобитите ключалки
- Той ще освободи всички ръкохватки, които може да са били придобити
- Той ще върне всички SET опции към стойностите по подразбиране
- Ще нулира стойността @@rowcount
- Ще нулира стойността @@identity
- Той ще нулира всички опции за проследяване на ниво сесия с помощта на dbcc traceon()
sp_reset_connection НЯМА да се нулира:
- Контекст на сигурността, поради което обединяването на връзки съвпада с връзките въз основа на точния низ за връзка
- Ако сте въвели роля на приложение с помощта на sp_setapprole, тъй като ролите на приложението не могат да бъдат върнати
- Нивото на изолация на транзакциите