ADO.NET性能改善方法集合

2008-09-19 17:34:11.0     推荐:0    收藏:0    评论:0     来源:中国IT实验室

总的考虑方向

  1) 根据数据使用的方式来设计数据访问层

  2) 缓存数据,避免不必要的操作

  3) 使用服务帐户进行连接

  4) 必要时连接,尽早释放

  5) 关闭可关闭的资源

  6) 减少往返

  7) 仅返回需要的数据

  8) 选择适当的事务类型

  9) 使用存储过程

  根据性能维护性、及实现难度来决定跨层数据传递的方式

  2 具体实现

  1)选用合适的Data Provider

  应尽量使用专用的Data Provider,下面是一个性能比较表

  可以看出SqlClient的速度是最快的,其主要原因是其他的数据提供者都经过的几个层次的转换

  可以看出,SqlClient直接访问DB Netlib而其他的数据提供者都经过了两层转换,因此,在设计多层应用的时候,并不是层次越多越好,而是应该在可扩展性与性能间取折中,增加层次是会降低性能的。

  1) 数据库连接

  i. 在方法中打开和关闭连接,即不要在类的构造函数中打开连接,在类的析构函数中关闭连接。

  ii. 使用完连接明确地关闭。因为有连接池的支持,关闭连接只是将连接放回连接池,并不是真正销毁,不会带来性能开销,而会增加连接池中可用连接,提升性能。

  iii. 当使用DataReaders时,指定CommandBehavior.CloseConnection

  iv. 当使用Fill()与Updata()时,不要手动打开连接。因为DataAdapter会自动开启连接,但是如果是Command则需要手动开启。

  v. 避免检查OleDbConnection的State属性,其性能开销相当大。

  vi. 使用连接池。这种方法可以大幅度提高性能。默认的情况下,通过SqlClient连接数据库时,会使用连接池,另可以通过连接字符串来控制连接池的最大值,最小值,以及是否开启连接池

[第1页]   [第2页]   [第3页]   [下一页]
您可以针对本文进行:[评论]  [收藏]  [推荐]  
  • 共有0条评论  点击查看更多评论
  • 网友评论仅供网友表达个人看法,并不表明e800同意其观点或证实其描述
我想发表评论:
用户名密码
  • 匿名发表
    验证码: