当前位置: 首页 > 图文教程 > 网络编程 > ASP > 探讨一下rs(0)和rs(fieldname)的执行效率

ASP
Adodb.Command 平时很少注意到的一个参数
Asp.Net控件加载错误的解决方法
远程连接access数据库的方法
创建具有JScript的HTML的XMLHTTP
在Asp中如何快速优化分页的技巧
用VB生成DLL封装ASP代码,连接数据库
RS.OPEN SQL,CONN,A,B 全接触
利用adodb.stream直接下载任何后缀的文件(防盗链)
用ASP编程控制在IIS建立Web站点的程序代码
使用VBScript操作Html复选框(CheckBox)控件
把文章内容中涉及到的图片自动保存到本地服务器
两个不同数据库表的分页显示解决方案
使用组件封装数据库操作(一)
使用组件封装数据库操作(二)
如何在pb中创建COM组件,并在asp中调用并返回结果集?
用ASP和Microsoft.XMLDOM分析远程XML文件
浅谈无刷新取得远程数据技术
将ASP纪录集输出成n列的的表格形式显示的方法
在ASP中通过oo4o连接Oracle数据库的例子
Server Application Error详细解决办法

ASP 中的 探讨一下rs(0)和rs(fieldname)的执行效率


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 70 ::
收藏到网摘: n/a

  事实已证明了用索引数(index number)访问记录集元素要比用字段名称(field name)快出几倍.按字符串查询要比按整数查询花去更多的时间和系统资源.
因此,在遍历数据库时应注意下面的两个问题:
    1.尽量最少使用select * 这样的语句
      在遍历某表里少量的字段时,select * 语句的执行效率是很低的,因为在执行这样的语句的时候其实执行了两次查询,在执行select语句前,首先必须查询系统表来确定名称和数据类型。
    2.在使用记录集rs值前,应该把它赋值给本地变量.
      这尤其适用于操作Text/Memo字段.
我发现在"read mode"下调用本地变量比从记录集中从新调用rs值要略快,特别是在多次recall recordset时,效果会更明显.
下面来看一个ASP的例子:
<%
    ' 创建数据库连接.
    set rs = conn.execute("exec sp_getRecords")
    if not rs.eof then
        do while not rs.eof

            id = rs(0) ' 把rs值赋给本地变量
            fname = rs(1)  
            lname = rs(2)  

            ' ... 使用本地变量处理工作

            rs.movenext
        loop
    end if
    ' ... 释放变量,结束连接.
%>
最后要注意:如果在SQL语句或存储过程中改变了select列表的字段顺序,那么在赋值时要特别注意.