zoukankan      html  css  js  c++  java
  • 分享一张SQLSERVER执行流程的图片

    分享一张SQLSERVER执行流程的图片

    有天论坛里有人问,一时间并发连接很多,是不是可以在SSMS里配置连接池

    连接池是属于客户端的,配置只能在连接字符串里配置,修改你的连接字符串,SSMS没有一个界面可以配置连接池的

    可能系统中很多进程,每个进程都使用他们各自的连接池,这些连接池是进程之间不能共享的,也就是说每个进程的都有他们各自独立的连接池,

    如果A连接池的连接数是22767,那么B连接池就算你在连接字符串里设置max pool size=32767,也只能使用10000个连接

    估计SniConnectionId就是标识每个进程的连接池ID的

    大家可以看一下这篇文章,关于连接池的

    非常老的话题 SQLSERVER连接池

    SQLSERVER连接池内部机制

     

    SQLSERVER2008开始使用Ring Buffer技术,当使用TCP协议进行连接时,可以获得更多的相关信息-例如,本地IP地址,端口,以及远程IP地址和端口,从而允许你唯一的确定客户机及其应用。另外,Ring Buffer包括了一个时间戳以及与之相对应的SPID(如果有的话),这样才能形成一个完整的对应关系。(因为随着时间的推移SPID会被不同的连接所重用)。 我们同样可以看到客户发的TDS包中有多少bytes,并且可以知道是否在TDS中有任何的错误:

    <TdsInputBufferError>0</TdsInputBufferError>

    <TdsOutputBufferError>0</TdsOutputBufferError>

    <TdsInputBufferBytes>60</TdsInputBufferBytes>

      最相关的,最易于分析的信息记录在TdsDisconnectFlags中,有一系列的值,记录了关闭连接的状态。这里,我们看到没有发现错误,但是这里记录了这也不是一个正常的断开或者一个正常的登出。从如下的flag中,这个session是被杀死的:

    <SessionIsKilled>1</SessionIsKilled>

    上面ring buffer文章的链接:

    利用Ring Buffer在SQL Server 2008中进行连接故障排除

    还有关于SNI,看下面的SniConnectionId

    1 <Record id="2" type="RING_BUFFER_CONNECTIVITY" time="110448275">
    2 <ConnectivityTraceRecord>
    3 <RecordType>ConnectionClose</RecordType>
    4 <RecordSource>Tds</RecordSource>
    5 <Spid>55</Spid>
    6 <SniConnectionId>B7882F3C-3BA9-45A7-8D23-3C5C05F9BDF9</SniConnectionId>
    7 <SniProvider>4</SniProvider>
    8 <RemoteHost>&lt;local machine&gt;</RemoteHost>
    9 <RemotePort>0</RemotePort>

    --------------------------------------------------------------------------------------

    2013-9-16补充:

    地址:http://kb.cnblogs.com/page/188200/

    关于TDS协议:

    表格数据流协议TDS
    TDS协议解析(转载)

    如果有不对的地方,欢迎大家拍砖o(∩_∩)o

  • 相关阅读:
    证明三个简单数学问题~(≧▽≦)/~啦啦啦
    计算时间复杂度
    字符三角形(循环做法)
    luogu Peter的烟
    c++一本通1000
    luogu最长连号
    luogu子数整数
    luogu三角函数
    (因更改文件夹造成)anaconda prompt 提示系统找不到指定的路径
    echarts之树形图改变节点之间连线颜色以及结点的颜色
  • 原文地址:https://www.cnblogs.com/lyhabc/p/3139578.html
Copyright © 2011-2022 走看看