请问各位高手如此检索一个很多记录的数据库,那种方法效率更高?

lefeno 2003-10-10 09:44:43
方法一:

……
news.open("select * from news order by id asc"),conn,1,1
<%
newscount=5

do while not news.eof and newscount>0
%>
<tr>
<td>
<%=news("newstitle")%>
</td>
<%
newscount=newscount-1
news.movenext
loop
news.close
set news=nothing

方法二:

……
news.open("select top 5 * from news order by id asc"),conn,1,1

do while not news.eof
%>
<tr>
<td>
<%=news("newstitle")%>
</td>
<%

news.movenext
loop
news.close
set news=nothing

小弟谢谢各位啦!
...全文
52 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
quady 2003-10-11
  • 打赏
  • 举报
回复
第二种。
表面看好像都一样,但是实际是不同的,两种方法分别就是取的记录数不一样的。
譬如数据库有100万条记录,第一种方法就会把所有的纪录都取出来(可以说是缓冲吧),然后再输出5条记录。
第二种就是在数据库中已经按条件选好了5条记录,然后再输出来。
可以对比一下在输出前,到底那种方法好的资源更多呢?
应该可以想到了吧?
佛祖的木鱼 2003-10-11
  • 打赏
  • 举报
回复
第二种.

可以做成存储过程.
zhanghao5188 2003-10-11
  • 打赏
  • 举报
回复
第一个是循环5次
<%
newscount=5
do while not news.eof and newscount>0
%>
<tr>
<td>
<%=news("newstitle")%>
</td>
<%
newscount=newscount-1
news.movenext
loop

%>


第二个是全部循环


效率应该差不多吧!! 如果 newscount= 5 ‘若为500000的话,应该第二种高!
blueice2002 2003-10-10
  • 打赏
  • 举报
回复
应该是第二种吧,显然他充分利用了数据库功能,这些工作就由数据库服务器来完成了,效率自然比较高。
lefeno 2003-10-10
  • 打赏
  • 举报
回复
可否详细说明一下原因吗?小弟不胜感激!谢谢
pp4u 2003-10-10
  • 打赏
  • 举报
回复
当然是第二种拉。
coolboy0000love 2003-10-10
  • 打赏
  • 举报
回复
效率是一样的,
只是第一个是循环5次
第二个是全部循环

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧