• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP.NET > .net 中的SqlConnection连接池机制详解

.net 中的SqlConnection连接池机制详解

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了vb.net sqlconnection,net err connection,ado.net connection,net connection,netconnectionstatus等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

正确的理解这个连接池机制,有助于我们编写高效的数据库应用程序。

很多人认为 SqlConnection 的连接是不耗时的,理由是循环执行 SqlConnection.Open 得到的平均时间几乎为0,但每次首次open 时,耗时又往往达到几个毫秒到几秒不等,这又是为什么呢?

首先我们看一下 MSDN 上的权威文档上是怎么说的

Connecting to a database server typically consists of several time-consuming steps. A physical channel such as a socket or a named pipe must be established, the initial handshake with the server must occur, the connection string information must be parsed, the connection must be authenticated by the server, checks must be run for enlisting in the current transaction, and so on.

以上摘自 http://msdn.microsoft.com/en-us/library/8xx3tyca%28VS.80%29.aspx

也就是说物理连接建立时,需要做和服务器握手,解析连接字符串,授权,约束的检查等等操作,而物理连接建立后,这些操作就不会去做了。这些操作是需要一定的时间的。所以很多人喜欢用一个静态对象存储 SqlConnection 来始终保持物理连接,但采用静态对象时,多线程访问会带来一些问题,实际上,我们完全不需要这么做,因为 SqlConnection 默认打开了连接池功能,当程序 执行  SqlConnection.Close 后,物理连接并不会被立即释放,所以这才出现当循环执行 Open操作时,执行时间几乎为0.

下面我们先看一下不打开连接池时,循环执行 SqlConnection.Open 的耗时

</div>

SqlConnection 默认是打开连接池的,如果要强制关闭,我们需要在连接字符串中加入 Pooling=False

调用程序如下:

下面是测试结果

下面再看默认情况下的测试代码

 {                

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • .net 中的SqlConnection连接池机制详解

相关文章

  • 2017-05-11Coolite Cool Study 2 同时更新多个Tab
  • 2017-05-11Visual Studio 2017安装心得总结
  • 2017-05-11Asp.net的服务器推技术 (Server Push)
  • 2017-05-11C# 获取当前星期几三种实现方法
  • 2017-05-11ASP.NET Repeater 单双行数据换色示例
  • 2017-05-11asp.net如何进行mvc异步查询
  • 2017-05-11c#设置xml内容不换行及属性xsi:nil=true的空节点添加
  • 2017-05-11近几天对DataSet的新认识
  • 2018-08-20如何处理ASP.NET Core中HTML5客户端路由回退的问题
  • 2017-05-11Asp.net TextBox的TextChanged事件使用介绍

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • MVC数据验证详解
    • asp.net 用户在线退出更新实现代码
    • 大型门户网站实现的十四大技术小结
    • ClickOnce DIY全自动更新下载升级的自我实现
    • SignalR Self Host+MVC等多端消息推送服务(一)
    • ASP.NET文件处理如何操作
    • ASP.NET 2.0/3.5中直接操作Gridview控件插入新记录
    • asp.net直接Response输出WML页面示例代码
    • LINQ操作数组代码(交集,并集,差集,最值,平均,去重复)
    • DataGrid中实现超链接的3种方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有