|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
ASP在国内异常流行,因为国内大多使用的是盗版的Windows和盗版的SQLServer,而ASP+COM+SQLServer实际上也是一种不错的搭配,其性能也不输于PHP+MYSQL,特别是Windows系统和SQLServer都有图形界面,比APACHE和MYSQL易于维护,因此对于不重视知识产权的国家来说也是一种不错的选择。数据|速度 现有10W条数据,Access数据库保留
经由过程正常提取:
<%
Set conn= Server.CreateObject("ADODB.Connection")
connstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("db2.mdb")
conn.Open connstr
Set rs = Server.CreateObject ("ADODB.Recordset")
sql = "Select * from people order by id desc"
rs.Open sql,conn,1,1
Do While Not rs.EOF
Response.write rs("id")&" | "
rs.MoveNext
Loop
%>
耗时3,250.000毫秒,总测试均匀值在3秒摆布
利用存储进程提取:
<%
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
Do While Not rs.EOF
Response.write rs("id")&" | "
rs.MoveNext
Loop
%>
耗时2,187.500毫秒,总测试均匀值在2秒摆布
以上两种均不克不及完全处理履行工夫漫长的成绩,次要缘由便是轮回每次都须向数据库抽取纪录(Command速度绝对较快)
那末利用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
Do While Not rs.EOF
Response.write rs("id")&" | "
rs.MoveNext
Loop
%>
耗时187.500毫秒,总测试均匀值在0.2秒摆布
GetRows()办法是将数据从 Recordset 复制到二维数组中,这是一个二维数组,第一个下标标识字段,第二个则标识纪录号
所以rsArray = rs.GetRows()
rsArray(0, 0)就暗示纪录集第一行的第一字段值
rsArray(1, 0)就暗示纪录集第一行的第二字段值
数组的数据是保留在内存中的,这就从基本上处理了每次显示纪录还需向数据库恳求的费事。
ASP是依赖组件的,能访问数据库的组件好多就有好多种,再有就是你微软的东西可是什么都要收钱的啊! |
|