SQL优化 ASP.NET ADO.NET

                     vi.             
当重返一个标量时,使用ExecuteScalar方法

7)        仅重回需要的数额

2)        SQL指令

4)        必要时总是,尽早获释

3)        使用服务帐户举办连续

                    vii.             
不要当运作时刻使用CommandBuilder,尽管异常便利,可是出很要命。

                     iv.             
当使用Fill()与Updata()时,不要手动打开连接。因为Data艾达pter会自动开连接,不过即便是Command则需要手动开启。

                     iv.             
只想急迅访问数据,不需要缓存效能应使用DataReader

6)        DataReader和DataSet

到底的考虑方向

                        i.              Data里德(Reade)r对象急需关闭

DataSet在用多少缓存,并当不同层间传递时行使。它好存放多单结果集,可以在离线的情下肆意一定,查找数据。

                       ii.              仅再次来到需要之行和例

                       ii.              成立参数并点名项目

5)        关闭而关闭的资源

                         i.              在仓储过程及动参数

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

由于达到图中得以视SqlClient的速是绝抢的,其首要缘由是任何的数据提供者都通过的几乎单层次的易,如下图

6)        收缩往返

                     iv.              尽可能使用输出参数

                       v.             
如果没有数重临则使用ExecuteNonQuery方法

4)        事务

                       v.             
防止检查OleDbConnection的State属性,其属性开销一定深。

遵照性、可维护性、及落实难度来支配跨层数据传递的章程

2)        缓存数据,制止不必要的操作

9)        使用存储过程

                       ii.             
对于OleDbCommand,指令类型也CommandType.Text

                       ii.             
使用完毕连接明确地关。因为有连接池的支撑,关闭连接只是将连续放回连接池,并无是当真销毁,不会师带性能开销,而会追加连接池中可用连接,提高性。

                      iii.             
使用SqlCommand,指令类型也CommandType.StoredProcedure

                      iii.              对好之数据集使用分页功用

5)        使用参数

                         i.              尽量以存储过程

2   具体贯彻

看来,进步性会跌但是扩张性,以及体贴难度,应在满足效用与非效能需求的景色下增长性能,另应在统筹时就考虑性能,好的计划于性及之进步比差的筹划先前时期再修改要好得差不多。

                      iii.             
DataReader应用在才念、只前行翻滚的数码访问场景

                       v.              考虑以SQL Server中SET NOCOUNT
ON,即关闭SQL Server的记数功效。

1)采纳合适的Data Provider
承诺尽可能选择专用的Data Provider,下边是一个特性于表

3)        存储过程

                         i.             
检查SQL的输入,并下参数,直接用字符连接容易吃注入式攻击。

初稿发布时间吗:2009-08-26 —— 来源于本人的百度随笔 [由搬家工具导入]

1)        按照数量应用的法门来设计数据访问层

SQL Server,                     vi.             
使用连接池。这种办法可大幅度提升性能。默认的情事下,通过SqlClient连接数据库时,会采纳连接池,另可透过连续字符串来决定连接池的无限深价值,最小价,以及是否打开连接池。

自图中可以看,SqlClient直接访问DB
Netlib而此外数码提供者都因而了点滴层转换,由此,在规划基本上重合下之早晚,并无是层次越多越好,而是应该当可扩展性与性能间取折中,扩大层次是碰头减低性能的。

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

                     iv.              批次执行SQL,制止频繁往来。

                         i.             
在章程中打开和关连接,即决不在类的构造函数中开辟连接,在看似的析构函数着关闭连接。

1)        数据库连接

                      iii.              可拿参数对象开展缓存

8)        选取适合的事务型

相关文章