asp 连接access数据库很慢

asp 连接access数据库变的很慢,原因有哪些?
我进行压缩恢复了,都没有用。是数据库太多数据吗?才2532KB的

在程序上 就一个查询语句,就是个登录
连接是这样写的:

set conn=server.createobject("ADODB.Connection")
connstr="DBQ="&server.mappath("data/avonjxc.mdb")&";DRIVER={Microsoft Access Driver (*.mdb)};"
conn.Open connstr
我的机子就是用来做程序的。内存会小?还有我现在这个程序不是连接每个access数据库都没?连接另外一个是很快的

connstr = "provide=Microsoft.Jet.OLEDB.4.0;Data Source="&server.mappath("data/avonjxc.mdb")
这个语句拿上去出现错误?=============数据源名称过长

这个不是其他的原因,而是你的内存的原因,如果你用于测试,我认为这样还可以,毕竞ACCESS只是一个桌面的关系数据库系统,而不像SQL等服务体系的。而且你用的驱动是ACCESS驱动的,就像你使用ACCESS,它首先将ACCESS内容全部调入到内存或虚拟内存中,如果你的数据库较大时就会出现很慢的情况。而换一个驱动还是不错的想法,OLEDB才是专业对网页进行设计的一个驱动,它是调用了底层API的,所以来说,速度应该不错的。至于说ACCESS本身很慢,我认为这不是构成网站慢的原因。因为ASP本身也是一个边解析边执行的翻译程序,而不像asp.net编译程序,所以在速度匹配上来说,ASP搭上ACCESS还是可行的方案。而用asp.net作开发时搭ACCESS是供用测试的,后来一般会换用SQL,但用的一般还都是OLEDB驱动,而不采用本身的驱动。

OLEDB驱动就是将你的connstr改为:
connstr = "provide=Microsoft.Jet.OLEDB.4.0;Data Source="&server.mappath("data/avonjxc.mdb")
同时,我只是说会好些,但如果你的ACCESS过大的情况或是内存过小,也不会有多大的改观的。另外,一般数据库使用完毕后,显式关闭连接,不要等垃圾收集器等程序的回收,这样会拖慢速度的。

ACCESS数据库过大的解决办法是,将不重要的或是关联不大的表建立在别一个数据库中,也就是说对原有数据库进行了拆分,这样做保证数据库本身不大,使用时一个连接的数据虽然没有多大的改变,但由于驱动没有打开好么大一个数据库而使用的内存不大,来提高速度。每一个连接使用完毕后就关闭,一般不会造成类似的现象了。

至于说PHP+MYSQL的结果没有延迟,我认为了桥桥这话说的有点好个了。
ASP.net+MSSQL不也行吗?呵呵,SQL是一个服务器组件,或是干脆说其是一个SQL服务器,它本身就是提供这样的服务的,完全可以与ASP/asp.net/jsp/php等分开在两台机器上的。再者来说,IL的本身就比ASP要快的多,而SQL只是一个数据服务器而已。所以说只有,我认为本身有点过于绝对了。

不过目前PHP国内使用的比较多真的,比如百度就是,但在国外JSP还是比较多的,而且使用何种语言只是一个地域性的,在于程序员本身。

如果只看说,我学JSP时,JSP用TOMCAT做试验说JSP是最快的,而只是说PHP与ASP.net只是同一数量级的,而学asp.net时,ASP.net的实验也说,ASP.net是最快的。要优于PHP与JSP,所以PHP上说它是最快的也不足为奇,哪个厂商不想多卖自己的东西呢?瞬间结果也只是一种太牵强的说法,它没有遇到大数据交换和数据库事务事件,如果真的碰到,无论是那种语言都是需要时间的,而不再什么瞬间了。不是ASP和CGI与PHP/JSP/ASP.net的确不在同一数量级,但国内还有很多程序员未从asp上转型到asp.net上来呢!

如果数据库过大,就算是一个登陆,那速度也是会很慢的!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-05-14
可能是你的机器内存太小了吧,ACCESS本身是很慢的,只作为测试使用,如果只有一个用户,一般情况下几秒钟应该能够反映过来。

如果希望感觉不到延迟时间,瞬间出现结果,那只有使用PHP+MYSQL了
第2个回答  2009-05-14
是不是sql语句或者程序的问题?

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网