ASP抽取数据的执行效率
分类:程序开发 Tags: asp 数据库 评论:0 浏览:2895 最近更新时间:2010/11/4 16:24:21
通常从数据库中抽取数据记录,需要使用到SQL语句,查询获得相关记录集,然后从记录集中选择相关字段、相关记录行进行显示。
那么在抽取到显示的一系列列过程中,如果注意如下几个要点,则令抽取数据的执行效率大大增加。
1,明确抽取的字段名称
正常的SQL语句抽取记录是:
即从数据表data_table中抽取所有字段的记录值。
select * 语句的执行效率是很低的,因为在执行这样的语句的时候其实执行了两次查询,在执行select语句前,首先必须查询系统表来确定名称和数据类型。
所以尽量最少使用select *语句,而使用明确的字段名称,如:
Select cn_name,cn_pwd from [data_table]
2,使用rs(0)比rs(filename)更快
记录集rs()里面可以写字段名(字符型),或者字段索引号(数字),它代表字段列表中第几个字段。比如:
rs(0)就表示rs("cn_name")
rs(1)表示rs("cn_pwd")
事实已证明了用索引数(index number)访问记录集元素要比用字段名称(field name)快出几倍。按字符串查询要比按整数查询花去更多的时间和系统资源。
3,使用记录集rs值前,将其赋值给变量
但在SQL语句或存储过程中改变了select列表的字段显示顺序,那么在赋值和处理时就要注意了。
4,使用GetRows()方法
GetRows()方法是将数据从 Recordset 复制到二维数组中,这是一个二维数组,第一个下标标识字段,第二个则标识记录号
所以rsArray = rs.GetRows()
rsArray(0, 0)就表示记录集第一行的第一字段值
rsArray(1, 0)就表示记录集第一行的第二字段值
数组的数据是保存在内存中的,这就从根本上解决了每次显示记录还需向数据库请求的麻烦。
那么在抽取到显示的一系列列过程中,如果注意如下几个要点,则令抽取数据的执行效率大大增加。
1,明确抽取的字段名称
正常的SQL语句抽取记录是:
- Select * from [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(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
- %>
4,使用GetRows()方法
- <%
- Set conn = Server.CreateObject("ADODB.Connection")
- Set cmd = Server.CreateObject("ADODB.Command")
- conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("db2.mdb")
- cmd.ActiveConnection = conn
- cmd.CommandText = "Select * from people order by id desc"
- Set rs = cmd.Execute
- rsArray = rs.GetRows()
- For i = 0 To UBound(rsArray, 2)
- Response.Write rsArray(0, i)&" | "
- Next
- %>
所以rsArray = rs.GetRows()
rsArray(0, 0)就表示记录集第一行的第一字段值
rsArray(1, 0)就表示记录集第一行的第二字段值
数组的数据是保存在内存中的,这就从根本上解决了每次显示记录还需向数据库请求的麻烦。
本文地址:/489/
-
• ASP提交Post数据到远程网站的方法
• Asp超精准判断客户端浏览器类型代码
• ASP Access数据库连接关闭与.ldb文件锁定解决方法
• JS显示当前年月日时间分秒代码(时间不断变动)
• 中国十大ASP CMS系统介绍
• ASP过滤所有超链接代码
• MySQL报Field‘***’doesn’t have a default value错误的解决办法
• UEditor百度编辑器在html代码模式无法更新内容的解决办法
• 打开网页自动弹出QQ对话框代码
• 支持中文转换的Asp UrlDecode函数
-
• google企业邮箱无缘无故被停用/谷歌企业邮箱莫名其妙被封
• 网页设计中HTML常范的几个错误,平常设计中需要注意了!
• 解决Foxmail在Win7中出现“Access violation 007CC4B1”的错误
• 用Photoshop做脸部美容(美白\除油\润肤\)(图)
• Windows XP下TUS Client for Windows客户端的安装和使用
• 关于病毒命名规则的说明
• ASP Access数据库连接关闭与.ldb文件锁定解决方法
• 男人该看的十大必看电影(你都看了吗?)
• 100条企业网站推广方法
• 架构师奇缺,国内商务网站大都有致命缺陷。
-
• Google Workspace gmail企业邮箱老板监控员工邮件操作方法
• zoho企业邮箱开启手机验证码双重认证教程
• 外贸网站如何使用Google Search Console谷歌管理员工具
• 腾讯企业邮箱开启安全登录后,如何登录foxmail收发信
• 获取小红书无水印图片的原理
• iis如何支持.webp图片格式访问
• FireFox火狐浏览器有用的设置方法记录
• 最新政策 Google免费版企业邮箱个人用途可以继续保留免费版
• MySQL报Field‘***’doesn’t have a default value错误的解决办法
• 抖音国际版TikTok注册过程记录