有什么可以接单做设计的网站,互联网工程有限公司,wordpress 位置,电商网站 建设目标详细说明摘录自MSDN#xff1a;建立池连接可以显著提高应用程序的性能和可缩放性。SQL Server .NET Framework 数据提供程序自动为 ADO.NET客户端应用程序提供连接池。您也可以提供几个连接字符串修饰符来控制连接池行为#xff0c;请参见本主题内下文中“使用连接字符串关键字控制连…摘录自MSDN建立池连接可以显著提高应用程序的性能和可缩放性。SQL Server .NET Framework 数据提供程序自动为 ADO.NET客户端应用程序提供连接池。您也可以提供几个连接字符串修饰符来控制连接池行为请参见本主题内下文中“使用连接字符串关键字控制连接池”这一节。池的创建和分配当连接打开时将根据一种精确的匹配在以下示例中将创建三个新的 SqlConnection对象但只需要使用两个连接池来管理这些对象。请注意第一个和第二个连接字符串的差异在于为 InitialCatalog 分配的值。SqlConnection conn new SqlConnection();conn.ConnectionString Integrated SecuritySSPI;Initial Catalognorthwind;conn.Open();// Pool A is created.SqlConnection conn new SqlConnection();conn.ConnectionString Integrated SecuritySSPI;Initial Catalogpubs;conn.Open();// Pool B is created because the connection strings differ.SqlConnection conn new SqlConnection();conn.ConnectionString Integrated SecuritySSPI;Initial Catalognorthwind;conn.Open();// The connection string matches pool A.连接池一旦创建直到活动进程终止时才会被毁坏。非活动或空池的维护只需要最少的系统开销。连接的添加连接池是为每个唯一的连接字符串创建的。当创建一个池后将创建多个连接对象并将其添加到该池中以满足最小池大小的要求。连接将根据需要添加到池中直至达到最大池大小。当请求 SqlConnection对象时如果存在可用的连接则将从池中获取该对象。若要成为可用连接该连接当前必须未被使用具有匹配的事务上下文或者不与任何事务上下文相关联并且具有与服务器的有效链接。如果已达到最大池大小且不存在可用的连接则该请求将会排队。当连接被释放回池中时连接池管理程序通过重新分配连接来满足这些请求。对Connection 调用 Close 或 Dispose 时连接被释放回池中。警告建议使用完 Connection后始终将其关闭以便连接可以返回到池中。这可以使用 Connection 对象的 Close 或 Dispose方法来实现。不是显式关闭的连接可能不会添加或返回到池中。例如如果连接已超出范围但没有显式关闭则仅当达到最大池大小而该连接仍然有效时该连接才会返回到连接池中。注意 不要在类的 Finalize 方法中对Connection、DataReader 或任何其他托管对象调用 Close 或Dispose。在终结器中仅释放类直接拥有的非托管资源。如果类不拥有任何非托管资源则不要在类定义中包含 Finalize方法。有关更多信息请参见垃圾回收编程。连接的移除如果连接生存期已过期或者连接池管理程序检测到与服务器的连接已断开连接池管理程序将从池中移除该连接。请注意只有在尝试与服务器进行通信后才可以检测到这种情况。如果发现某连接不再连接到服务器则会将其标记为无效。连接池管理程序会定期扫描连接池查找已释放到池中并标记为无效的对象。找到后这些连接将被永久移除。如果存在与已消失的服务器的连接那么即使连接池管理程序未检测到已断开的连接并将其标记为无效仍有可能将此连接从池中取出。当发生这种情况时将生成异常。但是为了将该连接释放回池中仍必须将其关闭。事务支持连接是根据事务上下文来从池中取出并进行分配的。请求线程和所分配的连接的上下文必须匹配。因此每个连接池实际上又分为不具有关联事务上下文的连接以及N 个各自包含与一个特定事务上下文的连接的子部分。当连接关闭时它将被释放回池中并根据其事务上下文放入相应的子部分。因此即使分布式事务仍然挂起仍可以关闭该连接而不会生成错误。这样您就可以在随后提交或中止分布式事务。使用连接字符串关键字控制连接池SqlConnection 对象的 ConnectionString属性支持连接字符串键/值对这些键/值对可用于调整连接池逻辑的行为。下表描述了可用于调整连接池行为的 ConnectionString 值。名称默认值说明Connection Lifetime0当连接返回到池中时将对它的创建时间和当前时间进行比较如果时间间隔超过由Connection Lifetime指定的值(以秒为单位)则会毁坏该连接。在聚集配置中可以使用它来强制在运行服务器和刚联机的服务器之间达到负载平衡。如果值为零 (0)则将使池连接具有最大的超时期限。Connection Resettrue确定在从池中移除数据库连接时是否将其重置。对于 Microsoft SQL Server 版本 7.0如果设置为false将避免在获取连接时经历一个额外的往返过程但必须注意的是连接状态(如数据库上下文)不会被重置。Enlisttrue当为true 时如果存在事务上下文池管理程序将自动在创建线程的当前事务上下文中登记连接。Max Pool Size100池中允许的最大连接数。Min Pool Size0池中维护的最小连接数。Poolingtrue当为true时将从相应的池中取出连接或者在必要时创建连接并将其添加到相应的池中。连接池的性能计数器SQL Server .NET Framework数据提供程序添加了几个性能计数器它们将使您能够微调连接池特性检测与失败的连接尝试相关的间歇性问题并检测与对 SQL Server的超时请求相关的问题。下表列出了可以在“.NET CLR 数据”性能对象下的“性能监视器”中访问的连接池计数器。计数器说明SqlClient: Current # pooled and non pooled connections当前池连接或非池连接的数目。SqlClient: Current # pooled connections当前所有池中与特定进程关联的连接的数目。SqlClient: Current # connection pools当前与特定进程关联的池的数目。SqlClient: Peak # pooled connections自特定进程开始以来所有池中的连接数峰值。请注意此计数器只有在与特定进程实例关联时才可用。_Global实例始终返回 0。SqlClient: Total # failed connects打开连接的尝试因任何原因而失败的总次数。注意 将 SQL Server .NET Framework数据提供程序性能计数器与 ASP.NET 应用程序一起使用时只有 _Global 实例是可用的。因此性能计数器返回的值是所有 ASP.NET应用程序的计数器值的总和。