服务器之家

服务器之家 > 正文

ASP抽取数据的执行效率

时间:2019-10-30 15:29     来源/作者:asp教程网

通常从数据库中抽取数据记录,需要使用到SQL语句,查询获得相关记录集,然后从记录集中选择相关字段、相关记录行进行显示。 

那么在抽取到显示的一系列列过程中,如果注意如下几个要点,则令抽取数据的执行效率大大增加。 

1,明确抽取的字段名称 

正常的SQL语句抽取记录是:
Select * from [data_table] 
即从数据表data_table中抽取所有字段的记录值。 

select * 语句的执行效率是很低的,因为在执行这样的语句的时候其实执行了两次查询,在执行select语句前,首先必须查询系统表来确定名称和数据类型。 

所以尽量最少使用select *语句,而使用明确的字段名称,如:
Select cn_name,cn_pwd from [data_table] 
2,使用rs(0)比rs(filename)更快 
Set rs=conn.Execute("Select cn_name,cn_pwd from [data_table]") 
记录集rs()里面可以写字段名(字符型),或者字段索引号(数字),它代表字段列表中第几个字段。比如:  
rs(0)就表示rs("cn_name") 
rs(1)表示rs("cn_pwd") 

事实已证明了用索引数(index number)访问记录集元素要比用字段名称(field name)快出几倍。按字符串查询要比按整数查询花去更多的时间和系统资源。 

3,使用记录集rs值前,将其赋值给变量
<%  
Set rs=conn.Execute("Select cn_name,cn_pwd from [data_table] where cn_id=1") 
if not rs.eof then  
do while not rs.eof  
cn_name = rs(0) ' 把rs值赋给变量  
cn_pwd = rs(1)  
' ... 使用变量处理工作  
rs.movenext  
loop  
end if  
rs.close  
Set rs = Nothing 
%> 

但在SQL语句或存储过程中改变了select列表的字段显示顺序,那么在赋值和处理时就要注意了。 
4,当然,使用GetRows()又是另外一回事了

相关文章

热门资讯

玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
男生常说24816是什么意思?女生说13579是什么意思?
男生常说24816是什么意思?女生说13579是什么意思? 2019-09-17
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情 2019-06-22
超A是什么意思 你好a表达的是什么
超A是什么意思 你好a表达的是什么 2019-06-06
抖音撒撒累累是什么歌 撒撒累累张艺兴歌曲名字
抖音撒撒累累是什么歌 撒撒累累张艺兴歌曲名字 2019-06-05
返回顶部