选择显示字体大小

用多活动结果集优化ado.net2.0数据连接(1)

    
    阅读概要 欢迎参予讨论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对象。
  
    二、实战
  
    在实际开发中普遍存在的一种典型的从数据库中读写数据的情形是,你可以使用多重连接而现在只用一个连接就足够了。例如,如果你有一些来自于几个表中的数据-它们不能被联结到一个查询中,那么你就会有多重的连接-每个连接都有一个与之相关连的命令用于读取数据。同样,如果你正在向一个表写数据,那么你需要另外一个连接或连接集合-如果有多个表要被更新的话。
  
    可以考虑这样的情形-你需要读取来自两个查询a和b中的数据-从可能要写向表c的数据获取值,并且对你要写向表d的行为保持一个审计记录。在如此情形中,你的代码可能如下:
  
    ·为a打开一个连接
  
    ·执行查询a,并且填充一个数据集
  
    ·为a关闭一个连接
  
    ·为b打开一个连接
  
    ·执行查询b,并且填充一个数据集
  
    ·为b关闭一个连接
  
    ·为c打开一个连接
  
    ·为d打开一个连接
  
    ·用从a和b中取得的详细数据更新c
  
    ·用做过的审计标记更新d
  
    ·关闭d
  
    ·关闭c
  
    这是相当复杂的!
  
    当使用mars时,你只要完成如下:
  
    ·用"multipleactiveresultsets=true"打开连接
  
    ·执行a并且填充一个数据集
  
    ·执行b并且填充一个数据集
  
    ·用从a和b中取得的详细数据更新c
  
    ·用做过的审计标记更新d
  
    ·关闭连接
  
    更简单!
  
  
    


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons