Zoals de andere antwoorden zeiden, sp_reset_connection
geeft aan dat de verbindingspool opnieuw wordt gebruikt. Let op een bepaald gevolg!
MSDN-blog van Jimmy Mays zei:
sp_reset_connection reset het transactie-isolatieniveau NIET naar de serverstandaard van de instelling van de vorige verbinding.
UPDATE :Vanaf SQL 2014 worden voor clientstuurprogramma's met TDS-versie 7.3 of hoger de transactie-isolatieniveaus teruggezet naar de standaardwaarden.
ref:SQL Server:Isolatieniveau lekken over gepoolde verbindingen
Hier is wat aanvullende informatie:
Wat doet sp_reset_connection?
Data access API's lagen zoals ODBC,OLE-DB en System.Data.SqlClient roepen allemaal de (interne) opgeslagen proceduresp_reset_connection op bij hergebruik van een connectie uit een connectie pool. Het doet dit om de status van de verbinding te resetten voordat deze opnieuw wordt gebruikt, maar nergens is gedocumenteerd wat er wordt gereset. Dit artikel beschrijft de delen van de verbinding die gereset worden.
sp_reset_connection reset de volgende aspecten van een verbinding:
Alle foutstatussen en nummers (zoals @@error)
Stopt alle EC's (uitvoeringscontexten) die onderliggende threads zijn van een bovenliggende EC die een parallelle query uitvoert
Wacht op openstaande I/O-operaties die uitstaan
Maakt alle vastgehouden buffers op de server vrij door de verbinding
Ontgrendelt alle bufferbronnen die door de verbinding worden gebruikt
Geeft al het toegewezen geheugen vrij dat eigendom is van de verbinding
Wist alle werk- of tijdelijke tabellen die zijn gemaakt door de verbinding
Doodt alle globale cursors die eigendom zijn van theconnection
Sluit alle open SQL-XML-handles die open zijn
Verwijdert alle open SQL-XML-gerelateerde werktabellen
Sluit alle systeemtabellen
Sluit alle gebruikerstabellen
Laat alle tijdelijke objecten vallen
Breekt openstaande transacties af
Defecten van een gedistribueerde transactie bij inschrijving
Verlaagt het aantal referenties voor gebruikers in de huidige database die gedeelde databasevergrendelingen vrijgeeft
Maakt verworven sloten vrij
Geeft alle verworven handvatten vrij
Zet alle SET-opties terug naar de standaardwaarden
Reset de @@rowcount-waarde
Reset de @@identity-waarde
Herstelt alle traceeropties op sessieniveau met dbcc traceon()
Zet CONTEXT_INFO terug op
NULL
in SQL Server 2005 en nieuwer [ maakt geen deel uit van het originele artikel ]sp_reset_connection wordt NIET gereset:
Beveiligingscontext, daarom matchen pooling verbindingen op basis van de exacte verbindingsreeks
Applicatierollen zijn ingevoerd met sp_setapprole, aangezien applicatierollen vóór SQL Server 2005 helemaal niet konden worden teruggedraaid. Vanaf SQL Server 2005 kunnen app-rollen worden teruggedraaid, maar alleen met aanvullende informatie die geen deel uitmaakt van de sessie. Voordat de verbinding wordt verbroken, moeten applicatierollen handmatig worden teruggezet via sp_unsetapprole met behulp van een "cookie" -waarde die wordt vastgelegd wanneer
sp_setapprole
wordt uitgevoerd.
Opmerking:ik voeg de lijst hier toe omdat ik niet wil dat deze verloren gaat in het altijd tijdelijke web.