知识大全 ADO.NET性能改善方法集合

Posted

篇首语:惜时专心苦读是做学问的一个好方法。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 ADO.NET性能改善方法集合相关的知识,希望对你有一定的参考价值。

ADO.NET性能改善方法集合  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  总的考虑方向

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

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

   ) 使用服务帐户进行连接

   ) 必要时连接 尽早释放

   ) 关闭可关闭的资源

   ) 减少往返

   ) 仅返回需要的数据

   ) 选择适当的事务类型

   ) 使用存储过程

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

   具体实现

   )选用合适的Data Provider

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

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

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

   ) 数据库连接

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

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

  iii 当使用DataReaders时 指定CommandBehavior CloseConnection

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

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

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

  

   ) SQL指令

  i 检查SQL的输入 并使用参数 直接使用字符连接容易遭受注入式攻击

  ii 仅返回需要的行和例

  iii 对大的数据集使用分页功能

  iv 批次执行SQL 避免多次往返

  v 如果没有数据返回则使用ExecuteNonQuery方法

  vi 当返回一个标量时 使用ExecuteScalar方法

  vii 不要在运行时间使用CommandBuilder 尽管很省事 但是开销很大

   ) 存储过程

  i 尽量使用存储过程

  ii 对于OleDbCommand 指令类型为CommandType Text

  iii 使用SqlCommand 指令类型为CommandType StoredProcedure

  iv 尽可能使用输出参数

  v 考虑在SQL Server中SET NOCOUNT ON 即关闭SQL Server的记数功能

   ) 事务

   ) 使用参数

  i 在存储过程上使用参数

  ii 创建参数并指定类型

  iii 可将参数对象进行缓存

   ) DataReader和DataSet

  i DataReader对象需要关闭

  ii 用DataReader时应 使用CommandBehavior CloseConnection关闭连接

  iii DataReader应用在只读 只向前翻滚的数据访问场景

  iv 只想快速访问数据 不需要缓存功能应使用DataReader

  

  DataSet在需要数据缓存 并在不同层间传递时使用 它可以存放多个结果集 可以在离线的情况下自由定位 查找数据

cha138/Article/program/net/201311/12701

相关参考

知识大全 ADO.NET性能改善方法集合[2]

ADO.NET性能改善方法集合[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  iv批次执行

知识大全 ADO.NET 2.0 数据异步处理改善用户体验

ADO.NET2.0数据异步处理改善用户体验  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  支持

知识大全 挖掘ADO.NET Entity框架的性能

挖掘ADO.NETEntity框架的性能  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ADON

知识大全 使用ADO.NET2.0提升数据交互性能

使用ADO.NET2.0提升数据交互性能  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  前言&n

知识大全 使用ADO.NET2.0提升数据交互性能(2)

使用ADO.NET2.0提升数据交互性能(2)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!三异步

知识大全 使用ADO.NET2.0提升数据交互性能(1)

使用ADO.NET2.0提升数据交互性能(1)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nb

知识大全 ADO.NET和ADO的比较

ADO.NET和ADO的比较  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 处理ADO与ADO.NET对比介绍

处理ADO与ADO.NET对比介绍  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ADONET统

知识大全 在 ADO 和 ADO.NET 中管理离线数据

在ADO和ADO.NET中管理离线数据  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  您可以使用

知识大全 ADO.Net与ADO在数据内存中的差异讨论

ADO.Net与ADO在数据内存中的差异讨论  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  数据