- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
sp_reset_connection 似乎由 SQL Server 连接池调用,以确保从池中重用的连接重置大部分设置。有谁确切知道它做什么和不做什么?
例如我从 this post 看到它不会重置事务隔离级别
最佳答案
数据访问 API 层(如 ODBC、OLE-DB 和 SqlClient)在重新使用连接池中的连接时调用(内部)存储过程 sp_reset_connection。这样做是为了在重新使用连接之前重置连接的状态。
似乎没有关于重置哪些内容的官方文档,但这里有一个非官方列表。
sp_reset_connection 重置连接的以下方面:
- It resets all error states and numbers (like @@error)
- It stops all EC's (execution contexts) that are child threads of a parent EC executing a parallel query
- It will wait for any outstanding I/O operations that is outstanding
- It will free any held buffers on the server by the connection
- It will unlock any buffer resources that are used by the connection
- It will release all memory allocated owned by the connection
- It will clear any work or temporary tables that are created by the connection
- It will kill all global cursors owned by the connection
- It will close any open SQL-XML handles that are open
- It will delete any open SQL-XML related work tables
- It will close all system tables
- It will close all user tables
- It will drop all temporary objects
- It will abort open transactions
- It will defect from a distributed transaction when enlisted
- It will decrement the reference count for users in current database; which release shared database lock
- It will free acquired locks
- It will releases any handles that may have been acquired
- It will reset all SET options to the default values
- It will reset the @@rowcount value
- It will reset the @@identity value
- It will reset any session level trace options using dbcc traceon()
sp_reset_connection 不会重置:
- Security context, which is why connection pooling matches connections based on the exact connection string
- If you entered an application role using sp_setapprole, since application roles can not be reverted
- The transaction isolation level
关于sql - sp_reset_connection 的作用是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/596365/
由于我遇到了一些问题,我正在 .NET Framework 4 中尝试连接池。使用 SQL Profiler,我可以看到每次从连接池中获取连接时,都会执行存储过程 sp_reset_connectio
sp_reset_connection 似乎由 SQL Server 连接池调用,以确保从池中重用的连接重置大部分设置。有谁确切知道它做什么和不做什么? 例如我从 this post 看到它不会重置事
我的分析器跟踪显示 exec sp_reset_connection在每个 sql 批处理或过程调用之间调用。有reasons for it ,但是如果我确信它是不必要的,我可以防止它被调用以提高性能
我有一个 .NET 4.0 Winform 和一个 .NET 4.0 Windows 服务,它们都通过 LINQ to SQL 连接到 SQL 2005/2008 数据库。它在我们的测试环境中运行良好
这个问题已经有答案了: What does sp_reset_connection do? (2 个回答) 已关闭 4 年前。 社区去年审查了是否重新开放此问题,并将其关闭: 原始关闭原因未解决 尝试
根据我读到的有关“exec sp_reset_connection”的信息,当连接池存在时,它出现在 SQL Server Profiler 跟踪数据中,从要考虑的跟踪数据中删除/排除它似乎是安全的(
我是一名优秀的程序员,十分优秀!