- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
在SQLServer .NET Data中Connection Pooling 配置
在SQLServer .NET Data中Connection Pooling 配置[摘 要] 数据库连接是一种关键的有限的昂贵的资源,它的好坏影响到整个应用程序的性能指标。数据库连接池正是针对这个问题提出来的。数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用,这项技术能明显提高对数据库操作的性能。在本文中,重点介绍一下在SQL Server .NET中如何配置Connection Pooling
[关键字] 连接池(Connection Pooling) SQL Server .NET Pool Connection
使用连接池(Connection Pooling)的目的在于它能提高与数据库连接的应用程序的性能,可以极大促进应用程序的性能与可扩展性。由于网络速度以及与数据库距离等因素的影响,创建一个连接十分耗时,这在WEB应用中尤为突出。连接池的作用就是使连接可以重用,从而有效的提高性能。当用户释放一个连接后,这个连接就回到连接池中,供其他用户继续使用。下面我们探讨一下在SQL Server .NET中如何配置Connection Pooling
SQL Server .NET Data Provider自动提供connection pooling。用户也可以自己提供一些连接字符串修饰符来控制connection pooling
1、Pool的创建与指定
当连接打开时,基于精确匹配算法的一个connection pool被创建,这个算法将pool和这个连接的连接字符串相关联。在新连接打开时,如果连接字符串不精确匹配一个已存在的pool,新pool被创建。下例中,三个新的SqlConnection对象被创建,但只有两个connection pool要求管理它们。注意,第一个和第二个的连接字符串由所指定的initial catalog值不同而不同
SqlConnection conn = new SqlConnection();
conn.ConnectionString = “Integrated Security=SSPI;Initial Catalog=northwind”;
conn.Open();
// Pool A is created.
SqlConnection conn = new SqlConnection();
conn.ConnectionString = “Integrated Security=SSPI;Initial Catalog=pubs”;
conn.Open();
// Pool B is created because the connection strings differ.
SqlConnection conn = new SqlConnection();
conn.ConnectionString = “Integrated Security=SSPI;Initial Catalog=northwind”;
conn.Open();
// The connection string matches pool A.
只要创建了connection pool,还有活动进程时connection pool就存在。维持不活动的和空pool的系统开销很小
2、添加Connection
每个独立的连接字符串对应一个connection pool。当pool创建时,多个连接对象被创建并被加至pool中以保证最小的pool数。连接可以一直添加,直到邮大的pool大小。当SqlConnection对象被请求时,如果当前连接可用,我们可以从pool中获得它。为了可用,连接必须当前不被使用,而且必须有一个对应的连接上下文,并拥有一个与服务器的有效连接。如果达到最大的池大小而无可用的连接,请求被缓冲于队列中。对象pooler可以在有可用连接时再进行分配。如果超时后仍然没有可用连接会产生一个错误。注意:必须在使用后关闭连接,这可以通过close或dispose方法关闭连接。不显式关闭连接,连接不会自动被系统回收
3、Connection的删除
如果连接的生存期到达或连接已经得到服务时,pooler将删除此对象。这个过程是在试图连接服务器后得到的。如果发现一个连接不再连接到服务器,标记它为无效。Pooler定期扫描标记无效的连接,这些连接以后会被永远删除。如果连接到的服务器消失,此连接会被移回pool中,即使它不被标记为无效。在此过程中会产生一个异常。此时用户仍然必须显式关闭连接以使它回到pool中
4、支持操作
由pool中抽取的Connection基于操作上
您可能关注的文档
- 及血栓形成相关血液学指标及检测.doc
- 及谐发展理念下高校德育.doc
- 及谐人格――构建及谐社会根基.doc
- 及谐教育理念下中学音乐课堂教学内涵及特征.doc
- 及谐校园文化建设内涵及功能.doc
- 及谐社会下预防未成年人犯罪问题思考.doc
- 及谐社会构建中生态伦理问题探究.doc
- 及谐理念指导下班主任工作.doc
- 及谐社会构建中青少年道德教育.doc
- 原始手稿本来面貌直接呈现.doc
- 第18讲 第17课 西晋的短暂统一和北方各族的内迁.docx
- 第15讲 第14课 沟通中外文明的“丝绸之路”.docx
- 第13课时 中东 欧洲西部.doc
- 第17讲 第16 课三国鼎立.docx
- 第17讲 第16课 三国鼎立 带解析.docx
- 2024_2025年新教材高中历史课时检测9近代西方的法律与教化含解析新人教版选择性必修1.doc
- 2024_2025学年高二数学下学期期末备考试卷文含解析.docx
- 山西版2024高考政治一轮复习第二单元生产劳动与经营第5课时企业与劳动者教案.docx
- 第16讲 第15课 两汉的科技和文化 带解析.docx
- 第13课 宋元时期的科技与中外交通.docx
文档评论(0)