Warstwy interfejsu API dostępu do danych, takie jak ODBC, OLE-DB i SqlClient, wywołują (wewnętrzną) procedurę składowaną sp_reset_connection podczas ponownego używania połączenia z puli połączeń. Robi to, aby zresetować stan połączenia, zanim zostanie ponownie użyty.
Wygląda na to, że nie ma oficjalnej dokumentacji na temat resetowania, ale tutaj jest nieoficjalna lista.
sp_reset_connection resetuje następujące aspekty połączenia:
- Resetuje wszystkie stany i liczby błędów (takie jak @@error)
- Zatrzymuje wszystkie EC (konteksty wykonania), które są wątkami potomnymi nadrzędnego EC wykonującego równoległe zapytanie
- Będzie czekać na wszelkie zaległe operacje we/wy, które są zaległe
- Zwolni wszystkie bufory przechowywane na serwerze przez połączenie
- Odblokuje wszystkie zasoby bufora używane przez połączenie
- Zwolni całą pamięć przydzieloną przez połączenie
- Wyczyści wszystkie tabele robocze lub tymczasowe utworzone przez połączenie
- Zabije wszystkie globalne kursory będące własnością połączenia
- Zamknie wszystkie otwarte uchwyty SQL-XML, które są otwarte
- Usuwa wszystkie otwarte tabele robocze związane z SQL-XML
- Zamknie wszystkie tabele systemowe
- Zamknie wszystkie tabele użytkowników
- Porzuci wszystkie tymczasowe obiekty
- Przerwie otwarte transakcje
- Zniknie z transakcji rozproszonej, gdy zostanie zarejestrowany
- Spowoduje to zmniejszenie liczby odwołań dla użytkowników w bieżącej bazie danych; co zwalnia współdzieloną blokadę bazy danych
- Zwolni nabyte blokady
- Zwolni wszelkie uchwyty, które mogły zostać nabyte
- Zresetuje wszystkie opcje SET do wartości domyślnych
- Zresetuje wartość @@rowcount
- Zresetuje wartość @@identity
- Zresetuje wszystkie opcje śledzenia na poziomie sesji za pomocą dbcc traceon()
sp_reset_connection NIE zostanie zresetowany:
- Kontekst bezpieczeństwa, dlatego pula połączeń dopasowuje połączenia na podstawie dokładnych parametrów połączenia
- Jeśli wprowadziłeś rolę aplikacji za pomocą sp_setapprol, ponieważ role aplikacji nie mogą być cofnięte
- Poziom izolacji transakcji