zoukankan      html  css  js  c++  java
  • SQLSERVER中的sp_reset_connection存储过程的作用

    SQLSERVER中的sp_reset_connection存储过程的作用

    经常有人在论坛提问为什麽在使用SQL Trace的时候会看到大量的sp_reset_connection存储过程的执行

    究竟sp_reset_connection存储过程有什么用?

    网上的资料很少

    下面说一下这个存储过程是干嘛的

    在介绍之前先说一下连接池和事务和阻塞,因为这个存储过程跟连接池、事务和阻塞有关

    一般SQL应用都会使用连接池来得到良好的性能。如果有一个连接忘记把事务关闭就退出连接那么这个连接会被交还给连接池

    但是这时候,事务不会被清理。客户端驱动程序会在这个连接下一次被重用的时候(又有新的用户要建立连接)

    发一句sp_reset_connection命令(这是一个存储过程)来清理当前连接上次遗留下来的所有对象

    包括:回滚未提交的事务。

    如果连接交还给连接池以后很久都没有被重用,那他的事务就会持续很长时间,引起阻塞。

    比如有些JAVA程序使用的JDBC驱动程序提供连接池功能,但是不提供连接重用时的事务清理功能。

    这样的连接池对应用开发质量要求很高,比较容易发生阻塞

    现在知道sp_reset_connection存储过程的作用了吧?

  • 相关阅读:
    stack计算表达式的值
    stack例子
    stoi的例子
    前端 获取项目根路径的四种方式
    document.write()
    动态引入js文件
    Uncaught SyntaxError: Invalid or unexpected token
    oracle 快速备份表数据
    Tsinsen A1303. tree(伍一鸣) LCT
    VS2015--win32project配置的一些想法之cmake
  • 原文地址:https://www.cnblogs.com/lyhabc/p/2793517.html
Copyright © 2011-2022 走看看