Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 806699
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 15, 20262026-05-15T00:17:09+00:00 2026-05-15T00:17:09+00:00

Trying to understand what Sql Profiler means by emitting sp_reset_connection. I have the following,

  • 0

Trying to understand what Sql Profiler means by emitting “sp_reset_connection”.

I have the following, “exec sp_reset_connection” line followed by BatchStarting and Completed,

RPC:Completed       exec sp_reset_connection
SQL:BatchStarting   SELECT [c].[TestID] AS [TestID], [c].[Description] AS [Description] FROM [dbo].[Test] AS [c]
SQL:BatchCompleted  SELECT [c].[TestID] AS [TestID], [c].[Description] AS [Description] FROM [dbo].[Test] AS [c]    

Basically does first line “exec sp_reset_connection” mean the whole process (my connection was opened, the select stmt is run, then the connection is closed and released back to pool) just take place? Or my connection is still in open stage.

And, why does the sp_reset_connection executed before my own select statement, shouldn’t it the reset come after user’s sql?

I’m trying to know is there a way to know in more detail when a connection is opened and closed?

By seeing “exec sp_reset_connection”, does that mean my connection is closed?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-15T00:17:10+00:00Added an answer on May 15, 2026 at 12:17 am

    Like the other answers said, sp_reset_connection indicates that connection pool is being reused. Be aware of one particular consequence!

    Jimmy Mays’ MSDN Blog said:

    sp_reset_connection does NOT reset the
    transaction isolation level to the
    server default from the previous
    connection’s setting.

    UPDATE: Starting with SQL 2014, for client drivers with TDS version 7.3 or higher, the transaction isolation levels will be reset back to the default.

    ref: SQL Server: Isolation level leaks across pooled connections

    Here is some additional information:

    What does sp_reset_connection do?

    Data access API’s layers like ODBC,
    OLE-DB and System.Data.SqlClient all
    call the (internal) stored procedure
    sp_reset_connection when re-using a
    connection from a connection pool. It
    does this to reset the state of the
    connection before it gets re-used,
    however nowhere is documented what
    things get reset. This article tries
    to document the parts of the
    connection that get reset.

    sp_reset_connection resets the
    following aspects of a connection:

    • All error states and numbers
      (like @@error)

    • Stops all EC’s (execution contexts)
      that are child threads of a parent EC
      executing a parallel query

    • Waits for any outstanding I/O
      operations that is outstanding

    • Frees any held buffers on the
      server by the connection

    • Unlocks any buffer resources
      that are used by the connection

    • Releases all allocated memory
      owned by the connection

    • Clears any work or temporary
      tables that are created by the
      connection

    • Kills all global cursors owned by the
      connection

    • Closes any open SQL-XML handles that are open

    • Deletes any open SQL-XML related work tables

    • Closes all system tables

    • Closes all user tables

    • Drops all temporary objects

    • Aborts open transactions

    • Defects from a distributed transaction when enlisted

    • Decrements the reference count
      for users in current database which
      releases shared database locks

    • Frees acquired locks

    • Releases any acquired handles

    • Resets all SET options to the default values

    • Resets the @@rowcount value

    • Resets the @@identity value

    • Resets any session level trace
      options using dbcc traceon()

    • Resets CONTEXT_INFO to NULL in SQL Server 2005 and newer [ not part of the original article ]

    sp_reset_connection will NOT reset:

    • Security context, which is why
      connection pooling matches connections
      based on the exact connection string

    • Application roles entered using sp_setapprole, since application roles could not be reverted at all prior to SQL Server 2005. Starting in SQL Server 2005, app roles can be reverted, but only with additional information that is not part of the session. Before closing the connection, application roles need to be manually reverted via sp_unsetapprole using a "cookie" value that is captured when sp_setapprole is executed.

    Note: I am including the list here as I do not want it to be lost in the ever transient web.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Trying to understand an fft (Fast Fourier Transform) routine I'm using (stealing)(recycling) Input is
After trying to understand why client code is not rendered in a page (injected
I've been trying to understand how Ruby blocks work, and to do that I've
I've been trying to understand Process.MainWindowHandle . According to MSDN; The main window is
I'm trying to understand someone else's Perl code without knowing much Perl myself. I
I am trying to understand some assembly. The assembly as follows, I am interested
I was trying to understand something with pointers, so I wrote this code: #include
I'm trying to understand the concepts behind DDD, but I find it hard to
I'm trying to understand a particular Perl code from vcake . Usually I find
I'm trying to understand how you are supposed to add page numbers to the

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.