|
l 总的考虑方向
1) 根据数据使用的方式来设计数据访问层
2) 缓存数据,避免不必要的操作
3) 使用服务帐户进行连接
4) 必要时连接,尽早释放
5) 关闭可关闭的资源
6) 减少往返
7) 仅返回需要的数据
8) 选择适当的事务类型
9) 使用存储过程
根据性能、可维护性、及实现难度来决定跨层数据传递的方式
2 具体实现
1)选用合适的Data Provider 应尽量使用专用的Data Provider,下面是一个性能比较表
由上图中可以看出SqlClient的速度是最快的,其主要原因是其他的数据提供者都经过的几个层次的转换,如下图
从图中可以看出,SqlClient直接访问DB Netlib而其他的数据提供者都经过了两层转换,因此,在设计多层应用的时候,并不是层次越多越好,而是应该在可扩展性与性能间取折中,增加层次是会降低性能的。
1) 数据库连接
i. 在方法中打开和关闭连接,即不要在类的构造函数中打开连接,在类的析构函数中关闭连接。
ii. 使用完连接明确地关闭。因为有连接池的支持,关闭连接只是将连接放回连接池,并不是真正销毁,不会带来性能开 [1] [2] [3] [4] [5] 下一页 |