• λ我爱Aspx >> C#.Net >> 用多活动结果集优化ADO.NET2.0数据连接_ADO.NET应用
  • 用多活动结果集优化ADO.NET2.0数据连接_ADO.NET应用

  • :aspxer  Դ:internet  :2007-4-28 23:46:45  ؼ:.net,数据
  • 阅读概要 欢迎参予讨论MARS的使用!通过这里介绍的MARS技术上,你能够在单个连接上执行多重数据库查询。而且依赖于MARS技术的编码更为简单易读,并且使你在开发数据集中的Web应用程序时可以减少内存使用并在一定程序上消除性能瓶颈。难道你不想尝试一下MARS?

    多活动结果集(Multiple Active Result Sets,简称MARS)是ADO.NET 2.0的一个新特征-它允许在单个连接上执行多重的数据库查询或存储过程。这样的结果是,你能够在单个连接上得到和管理多个、仅向前引用的、只读的结果集。在MARS以前,针对每个结果集需要一个独立的连接。当然,你还必须管理这些连接并且要付出相应的内存和潜在的应用程序中的高度拥挤的瓶颈代价-特别是在数据集中的Web应用程序中。

    第一个支持MARS的商业数据库是SQL Server 2005,在本文中你将会详细了解怎样使用这一强有力的然而却是易于添加到ADO.NET开发中去的工具。

    当在以前版本的SQL Server中存取数据结果集时,你需要创建额外的SqlConnection对象以配合使用SqlCommand。你需要追踪你的所有结果集及其导致低效率程序的SqlConnections连接以及"There is already an open DataReader associated with this Connection"错误。现在,使用了MARS技术后,所有这些都成了过去。

    一、 准备工作

    最开始,你需要设置一新的连接字符串以启动多个活动连接。自然地,我们把这个设置命名为"MultipleActiveResultSets",并且如下使用之:

    String connectionString = "Data Source=DBSERVER;" +

    "Initial Catalog=AdventureWorlds;IntegratedSecurity=SSPI;" +

    "MultipleActiveResultSets=True";

    它的默认设定是"False",并且你能明确地禁用它-如果你想传递"False"给这个MultipleActiveResultSets设定的话。

    请遵循下面步骤来建立和启动MARS和ADO.NET 2.0:

    1. 创建一个如上面所示的连接字符串。

    2. 创建一个SqlConnection对象并且用该连接字符串初始化它。

    3. 使用它的Open()方法打开这个SqlConnection对象。

    4. 对于你想要执行的每个查询,创建一个新的SqlCommand对象。把它们与你在上面创建并打开的SqlConnection对象相关联。

    5. 使用适当的命令(如,如果你想读该取查询结果的话,可以使用ExecuteReader();或使用ExecuteNonQuery()来进行更新,等等)来执行查询。

    6. 完成后,关闭SqlConnection对象。

    二、实战

    在实际开发中普遍存在的一种典型的从数据库中读写数据的情形是,你可以使用多重连接而现在只用一个连接就足够了。例如,如果你有一些来自于几个表中的数据-它们不能被联结到一个查询中,那么你就会有多重的连接-每个连接都有一个与之相关连的命令用于读取数据。同样,如果你正在向一个表写数据,那么你需要另外一个连接或连接集合-如果有多个表要被更新的话。

    Ҷƪл˵?
  • һƪ优化Oracle库表设计的若干方法_数据库技巧
    һƪORACLE SQL性能优化系列(一)_数据库技巧