当前位置:编程学习 > asp >>

asp+access读数据很慢!

说明:网速不错,网站数据很少,只有几十条新闻呀,太慢了,打开一个页面要1分钟,应该怎么弄,请大帮帮帮我!谢谢了
补充:这是:index.asp
<!--#include file="conn.asp" -->
<%
set rs=server.CreateObject("adodb.recordset")
sql="select * from dproduct order by id desc"
rs.open sql,conn,1,1
i=0
do while not rs.eof
i=i+1
%>
                            <td width="507" height="70"><a href="Product3.asp?id=<%=rs("id")%>" class="lj1 h20"><img src="<%=rs("pic")%>" width="120" height="75" border="0" /></a><br>
                              <a href="Product3.asp?id=<%=rs("id")%>" class="lj1 h20"><%=left(rs("style"),8)%></a></td>
<%
if i>=6 then exit do
rs.movenext
loop
rs.close
set rs=nothing
%>
答案:程序方面:
(1) 程序上的do...loop循环建议不用参数 i 的方法控制,没人这么做。
(2) 取数据时,需要什么取什么,如果不管取什么都是Select *的话,
数据库比较费劲。除非表中数据几乎你全要的时候才用Select *。
你想取前6条,SQL语句这么写:
SQL = "Select Top 6 ID,Pic,Style From dproduct Order By ID Asc"
参数 i 的都删除,用不到了。
(3) 还有这里
set rs=server.CreateObject("adodb.recordset")
sql="select * from dproduct order by id desc"
rs.open sql,conn,1,1
------------------------------------------------------------
这块这么写是最好的,代码:
SQL = "......"(略)
Set Rs = Conn.Execute (SQL)
Do While Not Rs.Eof
......略
不需要真的打开RecordSet
数据库方面:
你的ID是否是标识种子,是否设置为主键?
服务器方面:
如果上面的改了还是慢,建议你找找虚拟空间的问题,或者在本机运行看看,
虽然是本机,如果象你说网上打开要一分钟,本地也快不哪去。
总之你的程序按照我的改完,不可能是程序代码引发的慢。
其他:谢谢啦,我是个菜鸟啊 设置相关字段的缓存 设置字段将缓存清除 你说的不够仔细。你压缩修复过数据库了吗。建议做生成html。 这里吧,第你的你SQL语句要进行改进
比如:select top 6 id,pic,style from dproduct order by id desc
第二就是循环那里即然SQL是取6 条,这里就不用i来判断了

上一个:虚拟主机的ASP文件突然运行不了,一运行就出现Microsoft VBScript 编译器错误。
下一个:ASP.NET高手来看看

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,