编程论坛's Archiver

渚薰 发表于 2006-8-8 22:10

[经验]渚薰的ASP畅谈(三)怎样提高ADO的性能☆☆☆

<TABLE height="100%" cellPadding=0 width="100%" border=0>

<TR>
<TD vAlign=top>
<UL>
<LI>我相信,大多数ASP程序员,并不会去学ADO这一门技术(甚至还有人懒的去学Tranc-SQL),因为ASP教程中的那部分ADO内容,已经足够应付ASP的数据库访问了。但是,ADO并不是ASP的附属产品。其强大的功能和内涵远远超过了ASP。不要抱怨为什么微软的东西那么复杂,关键是简单的东西,它一定不好。众多ASP教程里,ADO的内容,只是所有ADO技术中的小小一部分,甚至不会涉及到各种ADO数据库访问技巧的比较(具我所看的ASP教程里,每一本都是一种访问技巧讲到底)。所以,首先我要推荐大家去看看《ADO数据库访问技术》这一类的书。它会帮助你,深入的了解ADO,以便提高你在ASP中的应用。</LI>
<LI>在ASP这样的Web脚本程序里,我们到底关心ADO的什么?当然是速度了!网络时代,速度优先嘛。还记得移动“打击”联通的那一段“猥琐”情节吗?“幸好我提前一周就发了 !”所以,当务之急,是提高ADO访问数据库的速度,甚至是性能。但是,ADO不就摆在眼前嘛?我们又不能改写ADO的内核,怎样才能提高呢?</LI>
<LI>性能的提高</LI>
<UL>
<LI>尽可能早的断开数据库链接。特别是Connection链接。好在,IIS给Connection链接配备了一个默认的连接池,才使得用户不用每次打开页面就请求数据库的连接。要知道,链接数据库以及维持链接的开销远比数据库查询的开销要大!</LI></UL>
<LI>速度的提高</LI>
<UL>
<LI>用Connection或Command的Execute方法来执行不需要返回RecordSet对象的SQL语句,这类SQL语句就如INSERT,UPDATE,DELETE等。而SELECT等需要返回RecordSet对象的SQL语句,则直接用RecordSet对象的实例来执行SQL语句。</LI>
<LI>操作临时表时,把Connection的CursorLocation属性设置成Client,并把RecordSet对象的LockType属性设置成adOpenStatic。</LI>
<LI>RecordSet的CursorType属性要符合应用程序的需要。因为显然adOpenForwardOnly是最快的数据库访问方式 ,能用它的时候就用它,不要总是用adOpenKeySet。</LI>
<LI>Select语句中的字段名,一般情况下需要用到多少就显示的列出多少。</LI>
<LI>尽可能不要进行表连接查询,最好在数据库中预先建立好视图。</LI>
<LI>复杂的参数化查询尽可能地用存储过程来达到数据库查询的目的。</LI></UL>
<LI>更多的ADO细节内容,希望大家能够参看更加权威的资料以获得知识。</LI></UL></TD></TR></TABLE>

C363540711 发表于 2006-10-21 15:07

辛苦了

勇者RX 发表于 2006-10-22 12:28

不错不错!

orangehf 发表于 2006-11-2 12:25

ADO原来这么强大!!<br>LZ辛苦啦~

piaoxue 发表于 2006-11-2 13:48

哎!  技术还是不行呀。  看不大明白!!!

神州游侠 发表于 2007-1-2 00:46

收集中。。。

cslldu 发表于 2008-6-17 21:55

谢谢!辛苦了

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.