全面优化ADO

3 Recordset

3.1 LockType

  缺省是adLockReadOnly,如果你不用修改数据,就不要改成adLockOptimistic之类的,否则也会减低速度和增加开销的

  adLockReadOnly > adLockPessimistic > adLockOptimistic > adLockBatchOptimistic

3.2 CursorType

缺省是adOpenForwardOnly,如果你只用MoveNext Method,也最好不要改,速度影响140%左右

adOpenForwardOnly > adOpenDynamic > adOpenKeyset > adOpenStatic

3.3 CursorLocation

  缺省是adUseServer,其实不好,它可以随时反映数据库服务器上的改动,但是系统开销很大,而且需要维持和数据库服务器的连接,但是在数据库服务器和Web Server在一起的时候要快些。不过在adLockOptimistic的时候使我无法使用RecordCountProperty

使用adUseClient的话,你可以对数据做再排序,筛选,shape等操作

如果对数据的实时性没有要求的话,尽量用adUseClient

4
其它

4.1 Early bind

ASP这一点就不用看了,如果用VB的话

Dim objConn As ADODB.Connection
Set objConn = CreateObject("ADODB.Connection")要好

4.2 ADO 2.1
里的shape真是好玩

4.3 ADO 2.1
可以用objRS.Fields.Append来建立一个Recordset

4.4
Recordset的一列数据直接变成一个数组来操作速度快一些,但是系统开销要大一些