ADO.NET 2.0 功能一览
连接池增强
ADO.NET 1.0引入了一种用于汇集数据库连接的新基础结构。Microsoft SqlClient
和OracleClient数据提供程序使用该基础结构,而OleDb和Odbc数据提供程序不使用该基
础结构。新的池机制提供对连接池参数的粒度支持,包括最小和最大池大小以及池管理
者等待将连接在池中变为可用的连接所需的用户自定义时间量的能力。ADO.NET添加了连
接池增强功能,以使您能够以编程方式“排干”连接池;即关闭当前由汇集者保持活动
的所有连接。您可以使用静态(在Visual Basic .NET中共享)方法SqlConnection.Cle
arPool清除特定的连接池,或者使用SqlConnection.ClearPools方法清除应用程序域中
的所有连接池。SqlClient和OracleClient都实现了该功能。
异步命令
有时,您希望在客户端或中间件代码中同时完成一件以上的工作,在本来就是多线
程的中间件代码中,这是提高吞吐量的关键因素。在ADO.NET 2.0中,SqlClient目前支
持异步命令执行。异步操作的.NET范型除了为同步操作提供一个方法以外,还能够为操
作提供一组Begin和End方法。因为数据库命令的执行可能需要很长时间,所以SqlClien
t现在提供了内置的SqlCommand方法以便提供异步执行。下表列出了支持异步执行的方法
和它们的同步对应方法。
同步方法
异步方法
ExecuteNonQuery
BeginExecuteNonQuery
EndExecuteNonQuery
ExecuteReader
BeginExecuteReader
EndExecuteReader
ExecuteXmlReader
BeginExecuteXmlReader
EndExecuteXmlReader
尽管异步执行可能是很好的功能,但不应当无故使用它,只有当您知道命令可能会
运行很长时间并且您同时要完成某些有用的任务时才应该使用它。Windows NT系列操作
系统中的Windows线程调度程序(该功能在Windows 9x和Me客户端上不可用)可花费它自
己的开销以便在线程之间切换。同时请记住,某些.NET库是线程敏感型的;使用异步时
,用于启动操作的线程未必是完成该操作的同一线程。但是,SQL Server网络库堆栈已
经进行了增强,以便通过I/O完成端口来支持异步,并且这为异步SQL Server操作提供了
更好的吞吐量。异步操作不但可以对多个操作语句和存储过程执行有效,而且在将其与
SQL Server 2005中的多个活动结果集功能结合使用时,您还可以使用单个数据库连接多
路复用异步SELECT语句。
from:asp学习网/title:ADO.NET 2.0 功能一览/ time:2007-6-1 22:18:11
本文主题,NET