| 1. 不要假设客户端的请求 l 永远会返回到同一机器 使用最佳的Data Provider l ADO.NET 可支持多个Provider: 1. System.Data.SqlClient 2. System.Data.OracleClient 3. System.Data.OleDb 4. System.Data.Odbc l 所有Provider的编程模型相同 1. 但是性能方面存在明显差异 l 建议:使用最佳 1. 在访问MSDE/SQL 是始终使用SqlClient 2. 在访问Oracle时始终使用OracleClient DataReader vs.DataSets l DataReader 1. 对查询的结果提供了单向读取的操作 2. 轻量快速-但在Reader关闭之前数据库始终处于连接状态 l DataSet 1. 非连接的数据访问方式 2. 内部使用DataReader用户获取数据 3. 在完成DataSet的获取后会自动关闭DataReader l Which is better? 1. 依赖于你的应用 2. 原则上在Middle_Tier设计到大量数据处理或进行离线的数据访问时建议使用DataSet 连接池 l ADO.NET拥有内置的连接迟 1. 自动缓寸/重新使用连接 2. 不必为此编写任何代码 l 代码建议 1. “在后期打开代码中的连接,然后在早期将其关闭” 2. 切无长时间保持连接状态 – 切无尝试构建你自己的“智能”连接池逻辑 3. 完成后应立即显示地关闭数据库连接,以将其返回致池中 l 优化提示: 1. 不同的连接字符串可以生成多个不同的连接池 2. 在Web.Config中存储单个连接字符串 3. 使用ConfigurationSettings.AppSettings以在运行时采用编程形式对其进行访问 4. 观察”.NET CLR数据“性能计数器,以变对由ADP.NET维护的连接池数量保持 使用存储过程 l 建议将SPROC用于数据存取 1. 通过DBA进行更轻松的性能调试 2. 通过使用数据库事务处理避免出现分布事务成本 3. 有助于防止SQL注入攻击 上一页 [1] [2] [3] 下一页 |