多次调用同一函数.该如何解决效率问题.

agpsy 2005-12-13 10:15:59
比如
1.asp
<%
Sub First(TopId)
Dim Conn,DsnTemp
Set Conn = Server.CreateObject("ADODB.Connection")
DsnTemp="DRIVER={SQL Server};SERVER=127.0.0.1;UID=sa;PWD=agp;DATABASE=m188"
Conn.open DsnTemp
Set rs=Server.CreateObject("ADODB.RECORDSET")

Dim Sql
Sql = "Select top "&TopId&" New_Title From NewContent Order by New_Id Desc"
Rs.Open Sql,conn,1,1

Do While Not rs.Eof
Response.Write rs("New_Title")
rs.MoveNext
Loop
rs.Close
Set rs = NoThing
Conn.Close
Set Conn = Nothing
End Sub
%>
2.asp
<!--#include file="1.asp"-->
<%
First "10"
First "20"
%>
如果这样调用,是不是效率会很低,该如何解决。
...全文
274 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
harryCom 2005-12-14
  • 打赏
  • 举报
回复
Dim Conn,DsnTemp
Set Conn = Server.CreateObject("ADODB.Connection")
DsnTemp="DRIVER={SQL Server};SERVER=127.0.0.1;UID=sa;PWD=agp;DATABASE=m188"
Set rs=Server.CreateObject("ADODB.RECORDSET")

Sub First(TopId)
Conn.open DsnTemp
Dim Sql
Sql = "Select top "&TopId&" New_Title From NewContent Order by New_Id Desc"
Rs.Open Sql,conn,1,1

Do While Not rs.Eof
Response.Write rs("New_Title")
rs.MoveNext
Loop
rs.Close
Conn.Close
Set Conn = Nothing
End Sub
创造奇迹9999 2005-12-14
  • 打赏
  • 举报
回复
觉得这样应该不错,把可以只执行一次以后就不用再执行的程序放到一起,如第一次调用打开一次数据库,而后又关了,第二次调用再打开,再关了,这样我觉得很费资源,不如直接改成如下

<%
Dim conn
Sub Open_Conn()
Dim DsnTsmp
Set Conn = Server.CreateObject("ADODB.Connection")
DsnTemp="DRIVER={SQL Server};SERVER=127.0.0.1;UID=sa;PWD=agp;DATABASE=m188"
Conn.open DsnTemp
End Sub
Sub Close_Conn()
Conn.Close
Set Conn=Nothing
End Sub
Sub First(TopId)
Set rs=Server.CreateObject("ADODB.RECORDSET")
Dim Sql
Sql = "Select top "&TopId&" New_Title From NewContent Order by New_Id Desc"
Rs.Open Sql,conn,1,1
Do While Not rs.Eof
Response.Write rs("New_Title")
rs.MoveNext
Loop
rs.Close
Set rs = NoThing
End Sub
%>
2.asp
<!--#include file="1.asp"-->
<%
Open_Conn()
First "10"
First "20"
Close_Conn()
%>
wojiaogyp 2005-12-14
  • 打赏
  • 举报
回复
没有啊 ,该关的都关了 ,没有什么要优化的了吧.
KimSoft 2005-12-14
  • 打赏
  • 举报
回复
Dim Conn,DsnTemp
Set Conn = Server.CreateObject("ADODB.Connection")
DsnTemp="DRIVER={SQL Server};SERVER=127.0.0.1;UID=sa;PWD=agp;DATABASE=m188"
Conn.open DsnTemp

Sub First(TopId)
Set rs=Server.CreateObject("ADODB.RECORDSET")

Dim Sql
Sql = "Select top "&TopId&" New_Title From NewContent Order by New_Id Desc"
Rs.Open Sql,conn,1,1

Do While Not rs.Eof
Response.Write rs("New_Title")
rs.MoveNext
Loop
rs.Close
Set rs = NoThing
End Sub
Conn.Close
Set Conn = Nothing

把Conn放在函数外面,会好一些。
agpsy 2005-12-14
  • 打赏
  • 举报
回复
自己up下吧
agpsy 2005-12-14
  • 打赏
  • 举报
回复
czq9966(大家知道龟兔赛跑谁会赢?)
你的那样,我也试验了。用timer看执行时间.他们差不多.

28,405

社区成员

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

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