谢谢大家的讨论。 以下是我的测试用的代码: 1.conn.asp '连接数据库用的文件 ------------------------------ <%StrSQL="driver={SQL server};server=localhost;uid=sa;pwd=123;database=news" '连接MSSQL数据库'StrSQL="DBQ="+server.mappath("news.mdb")+";DRIVER={Microsoft Access Driver (*.mdb)};" '连接ACCESS数据库 set Conn=server.createobject("ADODB.CONNECTION") Conn.open StrSQL %>sqltest.asp 测试文件 --------------------- <% t1=timer()%> '设置当前时间t1 <!--#include file="conn.asp"--> '连接数据库 <%response.buffer=True '不从缓存读取 tag1="" '显示 action=request("action") '取得action变量,action="add"为增加记录 if action="add" then sql="select * from news" set rs= Server.CreateObject("adodb.recordset") rs.open sql,conn,1,3 for i=1 to 50000 '添加50000条记录 randomize p=Int((3*rnd)+1) select case p case 1 area="国内" case 2 area="国际" case 3 area="本埠" end select
randomize p=Int((6*rnd)+1) select case p case 1 classid="时事" case 2 classid="经济" case 3 classid="法律" case 4 classid="体育" case 5 classid="娱乐" case 6 classid="科技" end select
rs.addnew rs("标题")="标题"&i rs("副标题")="副标题"&i rs("关键字")="关键字"&i rs("作者")="作者"&i rs("来自")="来自"&i rs("时间")=now()+1 rs("区域")=area rs("类别")=classid rs("内容")="那些将在Where子句中出现的字段,你应该首先考虑建立索引;那些需要排序的字段,也应该在考虑之列 " '在MS Access中建立索引的方法:在Access里面选择需要索引的表,点击设计,然后设置相应字段的索引."&i rs("来自")="来自"&i rs.update next rs.close set rs=nothing tag1="你已添加了10000条记录"
elseif action="run" then '取得action变量,action="run"为运行SQL语句 sql=trim(request("text")) '获得SQL语句
set rs= Server.CreateObject("adodb.recordset") ' rs.open sql,conn,1,3 tag1="你执行了<font color=red>"&sql&"</font>SQL" end if
1:企业管理器->服务器->属性->连接->查询超时(改为0或一个较大的数)
2:ADO的连接超时属性connectiontimeout 设大点.
3:ADO的CommandTimeout设大点性能优化:
http://expert.csdn.net/Expert/topic/2331/2331693.xml?temp=.6327021
你会知道。
访问ACCESS用经过OLEDB层,
而MSSQL可以直接使用SQLCLENT
我做过多次试验,得出的数据完全可靠。每次都是ACCESS更快。当我用ASP文件为数据库R循环插入50000记录时。ACCESS只用了54210.5毫秒。而MSSQL至少两倍时间还没完成,就超时出错了。????
我也搞不懂是怎么回事,都听说MSSQL比ACCESS更快,我一直是用ACCESS的,这回想改用MSSQL。初次试用就让我心恢意冷了。我想问:是不是MSSQL执行超来更慢,有什么办法可以改善吗?
添加存储过程就更快吗,怎样添加,在ASP里文件怎么调用??忘大家批点。我的QQ是:21418592。
我是做虚拟主机服务的,有谁可以帮助我,我愿意为他免费提供虚拟主机100M,算交个朋友吧!
ADO.net 怎么用?能告诉我吗!!!
而MSSQL可以直接使用SQLCLENT。这个怎么用。我一直都是用ASP写SQL操作数据库的。
比如:CONN打开一个数据库的操作(MSSQL或ACCESS)
而后用:set rs=server.createobject("adodb.recordset")
sql="select * from table"(或其它的SQL语句)
rs.open sql,conn,1,3 打开一个表
for i=1 to 50000
rs.addnew
rs("字段")=value
rs.update
next
(或其它的操作语句!!
测试过数十次,结果一至!!ACCESS快如飞,MSSQL总比ACCESS慢。不解?不解?不解?不解?肯请大家再讨论几句。
using system.data.sqlclient;
....................
..................string strConnection = "server=myServer;Datababse=myDatabase;User Id=sa;Password=;";
//或者采用NT帐号模拟登陆
/*
string strConnection = "server=myServer;Datababse=myDatabase;Trusted connection=ture
在aspx的使用中数据连接一般在WEB.CONFIG中设置
*/SqlConnection cnSqlServer= new SqlConnection(strConnection);
SqlCommand cmdSqlServer= new SqlCommand();
cmdSqlServer.Connection=cnSqlServer;
cmdSqlServer.CommandText="dbo.myProcedure";
cmdSqlSErver.CommandType=CommandType.StoredProcedure
..........................................................
以下是我的测试用的代码:
1.conn.asp '连接数据库用的文件
------------------------------
<%StrSQL="driver={SQL server};server=localhost;uid=sa;pwd=123;database=news"
'连接MSSQL数据库'StrSQL="DBQ="+server.mappath("news.mdb")+";DRIVER={Microsoft Access Driver (*.mdb)};" '连接ACCESS数据库
set Conn=server.createobject("ADODB.CONNECTION")
Conn.open StrSQL
%>sqltest.asp 测试文件
---------------------
<% t1=timer()%> '设置当前时间t1
<!--#include file="conn.asp"--> '连接数据库
<%response.buffer=True '不从缓存读取
tag1="" '显示
action=request("action") '取得action变量,action="add"为增加记录
if action="add" then sql="select * from news"
set rs= Server.CreateObject("adodb.recordset")
rs.open sql,conn,1,3
for i=1 to 50000 '添加50000条记录
randomize
p=Int((3*rnd)+1)
select case p
case 1
area="国内"
case 2
area="国际"
case 3
area="本埠"
end select
randomize
p=Int((6*rnd)+1)
select case p
case 1
classid="时事"
case 2
classid="经济"
case 3
classid="法律"
case 4
classid="体育"
case 5
classid="娱乐"
case 6
classid="科技"
end select
rs.addnew
rs("标题")="标题"&i
rs("副标题")="副标题"&i
rs("关键字")="关键字"&i
rs("作者")="作者"&i
rs("来自")="来自"&i
rs("时间")=now()+1
rs("区域")=area
rs("类别")=classid
rs("内容")="那些将在Where子句中出现的字段,你应该首先考虑建立索引;那些需要排序的字段,也应该在考虑之列 "
'在MS Access中建立索引的方法:在Access里面选择需要索引的表,点击设计,然后设置相应字段的索引."&i
rs("来自")="来自"&i rs.update
next
rs.close
set rs=nothing
tag1="你已添加了10000条记录"
elseif action="run" then '取得action变量,action="run"为运行SQL语句
sql=trim(request("text")) '获得SQL语句
set rs= Server.CreateObject("adodb.recordset") '
rs.open sql,conn,1,3
tag1="你执行了<font color=red>"&sql&"</font>SQL" end if
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head><body>
October 31, 2003<form name="form1" method="post" action="sqltest.asp?action=add">
<input type="submit" name="Submit" value="添加数据">
</form>
<form name="form2" method="post" action="sqltest.asp?action=run">
<input name="text" type="text" id="text" size="60">
<input type="submit" name="Submit2" value="执行SQL">
</form>
<%
response.write tag1
t2=timer '记录完成时间
thetime2=cstr(int(( (t2-t1)*10000 )+0.5)/10)
Response.Write "...已完成!<font color=red>" & thetime2 & "毫秒</font>。<br>"
'输出执行时间
%>
</body>
</html>