asp和access数据库下载。实现上传图片的功能

asp网页中如何做对ACCESS数据库添加图片的路径?
asp网页中如何做对ACCESS数据库添加图片的路径?
08-12-30 &
~~~汗~~~ 图片只需要记录路径 ~~~ 做一个无组建上传 将得到的路径传递到上传页面,在数据库里面增加一个图片的字段(备注),调用的时候&img src=&%=rs(&pic&)%&& 就行了
请登录后再发表评论!工具类服务
编辑部专用服务
作者专用服务
基于ASP的文件上传系统的设计与实现
分析了文件上传系统的程序流程,对实现文件上传系统的关键技术进行了讨论.在网站中实现文件上传功能,需要使用第三方提供的文件上传组件ASPUpload的内部对象、ASP的文件存取组件的内部对象以及ASP的数据库存取组件ADO的内部对象.综合利用系统的各种编程方法和技巧,可以设计出符合用户需求的各种动态网站.
ZOU Yu-feng
LIANG Xiao-bo
QIN Yong-jun
作者单位:
桂林师范高等专科学校,广西,桂林,541001
年,卷(期):
机标分类号:
在线出版日期:
本文读者也读过
相关检索词
万方数据知识服务平台--国家科技支撑计划资助项目(编号:2006BAH03B01)(C)北京万方数据股份有限公司
万方数据电子出版社用ASP实现图片上传并存入数据库
&>&&>&&>&正文
用ASP实现图片上传并存入数据库
佚名&& 12:37:15&&不详
   用ASP编写网站应用程序时间长了,难免会遇到各式各样的问题,其中 关于如何上传文件到服务器恐怕是遇见最多的问题了,尤其是上传图片,比如你想要在自己的社区里面实现类似网易虚拟社区提供的“每日一星”的功能,就要提供给网友上传照片的功能。上传图片文件到服务器可以使用各种免费的文件上传组件,使用起来功能虽然很强大,但是由于很多情况下,我们只能使用免费的支持ASP的空间或者租用别人的虚拟空间,对于第一种情况,我们根本就没有可能来使用文件上传组件;   至于第二种情况,我们也要付出不少的“银子”才可以。除非你拥有自己的虚拟主机,你就可以随便的在服务器上面安装自己所需要的组件,这种情况对于大多数人来说是可望而不可及的。那我们就没有办法了吗?呵呵,答案是肯定的(当然是肯定的了,要不然我也没法写出这篇文章啊)。下面就让我们一起来使用纯ASP代码来实现图片的上传以及保存到数据库的功能(顺便也实现显示数据库中的图片到网页上的功能)。   首先我们先来熟悉一下将要使用的对象方法。我们用来获取上一个页面传递过来的数据一般是使用Request对象。同样的,我们也可以使用Request对象来获取上传上来的文件数据,使用的方法是Request.BinaryRead()。而我们要从数据库中读出来图片的数据显示到网页上面要用到的方法是:   Request.BinaryWrite()。在我们得到了图片的数据,要保存到数据库中的时候,不可以直接使用Insert语句对数据库进行操作,而是要使用ADO的AppendChunk方法,同样的,读出数据库中的图片数据,要使用GetChunk方法。各个方法的具体语法如下: * Request.BinaryRead语法: variant = Request.BinaryRead(count) 参数 variant 返回值保存着从客户端读取到数据。 count 指明要从客户端读取的数据量大小,这个值小于或者等于使用方法 Request.TotalBytes得到的数据量。 * Request.BinaryWrite语法: Request.BinaryWrite data   参数   data   要写入到客户端中的数据包。   * Request.TotalBytes语法:   variant = Request.TotalBytes   参数   variant   返回从客户端读取到数据量的字节数。 * AppendChunk语法   将数据追加到大型文本、二进制数据 Fld 或 Parameter 对象。 object.AppendChunk Data   参数   object Field 或 Parameter 对象   Data 变体型,包含追加到对象中的数据。   说明   使用 Field 或 Parameter 对象的 AppendChunk 方法可将长二进制或字符数据填写到对象中。在系统内存有限的情况下,可以使用 AppendChunk 方法对长整型值进行部分而非全部的操作。 * GetChunk语法 返回大型文本或二进制数据 Field 对象的全部或部分内容 。 variable = field.GetChunk( Size ) 返回值 返回变体型。 参数 Size 长整型表达式,等于所要检索的字节或字符数。 说明 使用 Field 对象的 GetChunk 方法检索其部分或全部长二进制或字符数据。 在系统内存有限的情况下,可使用 GetChunk 方法处理部分而非全部的长整型 值。   GetChunk 调用返回的数据将赋给“变量”。如果 Size 大于剩余的数据,则GetChunk 仅返回剩余的数据而无需用空白填充“变量”。如果字段为空,则GetChunk 方法返回 Null。   每个后续的 GetChunk 调用将检索从前一次 GetChunk 调用停止处开始的数据。但是,如果从一个字段检索数据然后在当前记录中设置或读取另一个字段的值,ADO 将认为已从第一个字段中检索出数据。如果在第一个字段上再次调用 GetChunk 方法,ADO 将把调用解释为新的 GetChunk 操作并从记录的起始处开始读取。如果其他 Recordset 对象不是首个 Recordset 对象的副本,则访问其中的字段不会破坏 GetChunk 操作。   如果 Field 对象的 Attributes 属性中的 adFldLong 位设置为 True,则可以对该字段使用 GetChunk 方法如果在 Field 对象上使用 Getchunk 方法时没有当前记录,将产生错误 3021 (无当前记录)。   接下来,我们就要来设计我们的数据库了,作为测试我们的数据库结构如 下(Access97): 字段名称    类型    描述   id    自动编号   主键值 img OLE对象   用来保存图片数据  对于在MS SQL Server7中,对应的结构如下: 字段名称    类型    描述   id     int(Identity) 主键值 img   image     用来保存图片数据    现在开始正式编写我们的纯ASP代码上传部分了,首先,我们有一个提供给用户的上传界面,可以让用户选择要上传的图片。代码如下 (upload.htm): <html> <body> <center>    <form name="mainForm" enctype="multipart/form-data" action="process.asp" method=post>     <input type=file name=mefile><br>    <input type=submit name=ok value="OK">    </form> </center> </body> </html>   注意代码中黑色斜体的部分,一定要在Form中有这个属性,否则,将无法得到上传上来的数据。   接下来,我们要在process.asp中对从浏览器中获取的数据进行必要的处理,因为我们在process.asp中获取到的数据不仅仅包含了我们想要的上传上来的图片的数据,也包含了其他的无用的信息,我们需要剔除冗余数据,并将处理过的图片数据保存到数据库中,这里我们以Access97为例。具体代码如下(process.asp): <% response.buffer=true formsize=request.totalbytes formdata=request.binaryread(formsize) bncrlf=chrB(13) & chrB(10) divider=leftB(formdata,clng(instrb(formdata,bncrlf))-1) datastart=instrb(formdata,bncrlf & bncrlf)+4 dataend=instrb(datastart+1,formdata,divider)-datastart mydata=midb(formdata,datastart,dataend) set connGraph=server.CreateObject("ADODB.connection") connGraph.ConnectionString="driver={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath("images.mdb") & ";uid=;PWD=;" connGraph.Open set rec=server.createobject("ADODB.recordset") rec.Open "SELECT * FROM [images] where id is null",connGraph,1,3 rec.addnew rec("img").appendchunk mydata rec.update rec.close set rec=nothing set connGraph=nothing %> 好了,这下我们就把上传来的图片保存到了名为images.mdb的数据库中了,剩下的工作就是要将数据库中的图片数据显示到网页上面了。一般在HTML中,显示图片都是使用<IMG>标签,也就是<IMG SRC="图片路径">,但是我们的图片是保存到了数据库中,“图片路径”是什么呢?呵呵,其实这个SRC属性除了指定路径外,也可以这样使用哦: <IMG SRC="showimg.asp?id=xxx"> 所以,我们所要做的就是在showimg.asp中从数据库中读出来符合条件的数据,并返回到SRC属性中就可以了,具体代码如下(showimg.asp): <% set connGraph=server.CreateObject("ADODB.connection") connGraph.ConnectionString="driver={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath("images.mdb") & ";uid=;PWD=;" connGraph.Open set rec=server.createobject("ADODB.recordset") strsql="select img from images where id=" & trim(request("id")) rec.open strsql,connGraph,1,1 Response.ContentType = "image/*" Response.BinaryWrite rec("img").getChunk(7500000) rec.close set rec=nothing set connGraph=nothing %> 注意在输出到浏览器之前一定要指定Response.ContentType = "image/*",以便正常显示图片。 最后要注意的地方是,我的process.asp中作的处理没有考虑到第一页 (upload.htm)中还有其他数据,比如<INPUT type=tesxt name=userid>等等,如果有这些项目,你的process.asp就要注意处理掉不必要的数据。 怎么样,其实上传图片并保存到数据库很简单吧,这样再也不用为自己的空间无法使用各类的上传组件发愁了吧。还等什么?赶快试一试吧。
/document/asp/200504/asp220.html08:55 提问
asp中excel数据导入到access数据库
//上传excel文件页面
//一个页面获取到excel文件 然后提交到导入数据的asp页面进行处理,但现在提交到导入功能的页面以后报服务器错误,不知道错误出在了哪里
excel导入公益性岗位信息
excel文件:
//数据导入页面
xining为表名
通过excel中录入数据来导入到表xining中
session.CodePage=936
Server.ScriptTimeOut=6000000
set upload = new upload_5xsoft
set file = upload.file("file1")
if file.fileSize& then
alert("文件过大");
window.close();
if file.fileSize&0 then
filename=year(now)&month(now)&day(now)&hour(now)&minute(now)&secone(now)
filename=file.filename+".";
filenameend=file.filename
filenameend=split(filenameend,".")
if filenameend(1)="xls" then
filename = filename&filenameend(1)
file.saveAs Server.mappath("uploadfile/"filename)
response.write"数据格式不对/不是excel文件"
response.write""
response.end()
set file=nothing
response.write"文件格式不能为空"
response.write""
response.end()
set file=nothing
'读入到数据库'
setAddr = Server.mappath("uploadfile/"filename)
set excelconn = server.createobject("adodb.connection")
excelconn.open"Provider = Microsoft.Jet.OLEDB.4.0;Data Source = "+strAddr+";Extended"
Properties = "Excel 8.0;HDR=NO;IMEX=1"
set rs = server.CreateObject("adodb.recordset")
set rs1 = server.CreateObject("adodb.recordset")
sql = "select * from [Sheet1$]"
rs.open.sql,excelconn,1,1
if not(rs.bof and rs.eof)then
rs.movenext
do while not rs.eof
sql1 = "select * from xining where id is null"
rs1.open sql1,excelconn,1,3
rs1.addnew
rs1("name")=rs(0)
rs1("sex")=rs(1)
rs1("nation")=rs(2)
rs1("education")=rs(3)
rs1("idcard")=rs(4)
rs1("empcard")=rs(5)
rs1("worktype")=rs(6)
rs1("workname")=rs(7)
rs1("company")=rs(8)
rs1("memo")=rs(9)
rs1.update
rs.movenext
rs.close()
set rs=nothing
alert("导入成功");
window.parent.document.location.reload();
history.back();
660关注|145收录
312关注|881收录
386关注|244收录
其他相似问题
相关参考资料您好游客,欢迎访问梦艺网!
ASP网站ACCESS数据库大小-记录数-连接数极限与IIS服务器性能和速度
关键字:,,,,
摘要:分析这些网络资料,结合本站(梦艺网)运行的实践经验,我得出下面两点个人看法
  1、ACCESS数据库至少可以容纳10万条以上的记录,文件大小以达到300M以上也能正常使用,用其与ASP搭建的网站能够承受至少100人同时在线,完全可以满足各种中小论坛、博客、企业网站的数据存贮需求。
  2、ACCESS数据库的速度性能与其文件的绝对大小、记录数量的绝对多少关系…
?〖〗?〖〗?〖〗
?[] ?[] ?[]
&先生:&邮箱:&注册:&登录:13-7-3/22&文章:&评论:&精华:&头衔:网站开发&86
3570号(2955阅/1评)&nbsp发表:13-2-26 21:24
&修改:14-2-22 18:55&
&管理:14-2-22 18:34&
一、ASP网站ACCESS数据库大小-记录数极限
记得几年前刚学程序的时候经常听看网络上留传的文章说ACCESS的极限是100M,超了性能就会直线下降,一直到现在都是这样,可以很轻易的找出很多关于ACCESS的是非常差的数据库的文章。
几年前我学习用ASP做新闻系统由于ACCESS是最方便的数据库(我认为是最方便的),当时用的就是ACCESS+ASP的组合,当时心里想反正做了这个东西我的站访问量低对ACCESS应该也可以满足要求。(直到今天我还是用ACCESS+ASP的组合)
最近几年给很多企业做了不少的网站,也全是ACCESS,不过做的过程中的思想就一个,ACCESS是性能低下的数据库,不适合做高访问量的站来使用。这种思想一直延续到去年接了一个站点活。这个网站原先的结构是ASP+SQL,属于行业类网站,每天访问量不是很高大约日/IP2000左右,浏览量1~2万次左右,但数据量很高,有超过15万条数据。这个客户在我们公司做了百度和3721,那段时间他的站所在的服务器频繁死机,最后服务器管理员确认是他的网站有问题,最终找到我希望我可以帮他解决问题。我接手后先分析了他原先数据的结构,发现很多字段都是多余的,也没使用关系,甚至有的数据表连索引也没有,总之问题多多。后来我对数据库数据和程序进行了优化处理经过测试可以达到每天10万次以上不会出现服务器死掉的状况。(开了多个页使用META连续刷新一天)值得注意的是这次我用的数据库是ACCESS而不是原先的SQL。
至此我彻底对ACCESS性能底下的看法有了很大改观,一至于我现在自己的一个小站也是用ACCESS,目前数据库已经600多M了,性能目前还不错,一般每天浏览量在20~30万次左右,服务器CPU占用在15%上下。
写到这里我并不是贬低SQL,事实上SQL的确比ACCESS强我不否认。我认为一个一个数据库的好坏很大程度上取决于一个程序员有没有真正了解数据用好数据库,有没有针对程序做好优化,程序是否合理。
在这里我想问问非常熟悉ACCESS的朋友,ACESS到底能承受什么样的极限参数才会性能严重下降?如果是SQL又能承受多少?
数据库量小,只是少量用户访问时,access比sql要快得多,access没有sql占资源多,但数据量多了,access就不能做复杂的查询了,会出错!时间多了就会崩溃掉!&
二、ASP网站ACCESS数据库过大导致IIS6出错
出现的问题
单位的网页服务器用的是windows2003企业版操作系统(全新安装,确保系统无问题),网页采用的是asp程序+access数据库,利用系统自带的IIS6提供服务,网页程序从原来的windows2000服务器版+IIS5迁移到现在的windows2003 + IIS6后,配置好IIS6,访问一切正常,一段时间以后,访问主页时就出现&Service Unavailable&的提示,网页无法显示,查看IIS6的配置,一切正常,只有重新启动系统才能正常访问网站。并且重新启动后登录windows2003系统时会出现一个消息对话框如图1,大概意思是com surrogate 程序由于数据执行保护已被windows关闭,按&关闭消息&按钮后,又会弹出一个错误报告对话框,如图2 。一般情况下如图1、图2这样的对话框会出现很多组,即不同的时间点产生的错误。
问题解决过程
1、查配置:以为是IIS6的配置问题,于是调整IIS6里的应用程序池&&defaultappPool的属性,包括回收工作进程的时间、内存回收等设置。更改设置后还是出现同样问题。 考虑到原来在IIS5平台上运行的还算稳定(偶尔出现asp网页无法访问的情况,重新启动一下服务器就行了),于是将IIS6配置成以IIS5的隔离模式运行(右键单击&网站&&&选择&属性&&&点&服务&标签,将&隔离模式&勾上)。运行一段时间后出现html网页可以访问,asp网页无法访问并提示&内部服务器错误&的情况,重新启动系统后又出现若干组如图1、图2的对话框,随后ASP网页又可以访问了。首先程序是肯定没问题的,因为已经经过了长期使用,只能又开始排查系统问题。
2、查系统:查看&事件查看器&,系统日志及安全性日志均无异常记录,只有应用程序日志里有很多条警告性的记录&来源:W3SVC-WP ,事件ID: 2337 ,描述:进程外应用程序/LM/W3SVC//Root意外终止&,也就是IIS出现问题的记录。对解决问题没什么帮助。
由于重启后有提示是com surrogate 程序出错,于是上网搜索及到网管员世界论坛求助,根据搜索到的信息及论坛网友的说法,可能是vbscript.dll 有问题,于是到正常系统里重新拷贝一个vbscript.dll文件覆盖到系统目录下,并用命令 regsvr32 重新注册VBSCRIPT控件。试用后IIS6还是出现相同问题。
3、查访问日志:考虑到可能是受到网络攻击导致IIS出错,于是检查com surrogate 程序出错的时间点的网站访问日志,这里要注意的是网站日志文件中使用的是格林尼治标准时间,所以日志记录中的时间要加上8小时才跟计算机的系统时间吻合。仔细检查了程序出错时网站访问日志的对应时间点的记录,都是正常访问,未发现异常。
4、查网站内容:系统没问题,又不是网络攻击,只能把目光放到网站代码上。由于IIS6出错时是ASP网页无法访问,而ASP网页的代码是没有动过的,只有后台访问的ACCESS数据库文件是有更新的。于是开始检查网站的ACCESS数据库,网站平台用的是免费代码(由新闻、博客、论坛三个系统组成),主要有三个ACCESS文件,检查后发现博客系统的ACCESS数据库文件有500M多,超大,博客系统总共用户才100多个,而且经常在写博文的用户只有20来个,文章总数也就2000多,按道理是不可能占用这么大容量的。这个数据库文件肯定有问题,将它下载下来后打开,里面有20多个表,也不知道为什么占这么多容量,只有一个个打开来看一下,到底哪个表里的记录这么多,当打开oblog_trackback这个表时,电脑好长一段时间没有响应,一看,记录足足有80多万条,看过去都是一些垃圾信息。去OBLOG论坛咨询后得知,oblog_trackback这个表是用来存放引用通告记录的,可以在博客系统的后台管理里将引用通告功能关闭,就不会有引用信息存放到这个表中了。由于这个表中记录实在太多,多次尝试删除,电脑都处于无响应状态,于是新建了一个ACCESS数据库,将其他表拷贝到新的库中,oblog_trackback这个表就直接在新的库中新建一个,结构参照原表。完成瘦身后博客系统的ACCESS数据库才60M多,这才像样嘛。上传到服务器,覆盖原来500M多的数据库文件,并进入博客后台管理,关闭引用通告功能。经测试若干天后,网站访问一直正常,再也没有出现ASP网页无法访问的问题。
问题回顾分析
ACCESS是小型网站常用的数据库,而且免费的ASP代码系统都是采用ACCESS为后台数据库,虽说根据资料显示ACCESS最大容量支持到2G,但是考虑到脚本代码访问数据库的响应时间、内存需求等问题,网站的ACCESS数据库如果超过300M就应该考虑更换成mysql或SQLSERVER数据库了。此次IIS6频繁出错就是因为垃圾信息充斥博客系统的ACCESS数据库,使得数据库容量暴增,导致ASP程序访问该数据库时产生问题,以致COM SURROGATE程序出错,IIS无法解析ASP网页。
当网站出现问题时,管理员可以从服务器系统、外部攻击、网站内容三方面去排查原因,作为网站管理员不但要注意外部攻击和服务器维护,而且要关注网站内容的管理、网页信息系统的设置、数据库的容量变化,及时查漏补缺。此次的IIS出问题就是因为博客系统里一个&引用通告&功能未关闭,导致垃圾信息充斥,使得ACCESS数据库异常增大。
三、ASP网站ACCESS数据库支持的最大在线连接数
ACCESS数据库支持的最大在线连接数,由于很多客户问到ACCESS数据库与MS-SQL数据库的区别,Access是一种桌面数据库,只适合数据量少的应用,在处理少量数据和单机访问的数据库时是很好的,效率也很高。Microsoft Access数据库有一定的极限,本身对于同时访问客户端及容量都有一定的缺陷。
Microsoft SQL Server是基于服务器端的中型的数据库,可以适合大容量数据的应用,在功能上管理上也要比Microsoft Access 要强得多。在处理海量数据的效率,后台开发的灵活性,可扩展性等方面强大。
ACCESS数据库支持的最大在线连接数,但由于ACCESS数据库是免费的,且对于一般需求的网站开发灵活性比MS-SQL数据库要好,开发速度快,故很多中小型网站是采用的ACCESS数据库。
误区:ACCESS没有限制,其实真正能够限制连接数的取决于你的服务器!
ACCESS数据库支持的最大在线连接数,常用的IIS装在Win2000(server),可以没有任何连线限制,但是如果你在WinXP(PRO)里面使用IIS,其连接数限定为10个线程。所 以一般服务器都使用Win2000(Sever)而在XP里面IIS主要用来测试你制作的ASP。关于WinXP做的限制可以在使用协议里面看见。
正确:Access理论上最多支持 255 个并发用户 Access 支持的最大数据库大小为 2 GB
错:ACCESS没有限制,其实真正能够限制连接数的取决于你的服务器!
access数据库同时在线承受能力是多少?
为什么总有由于您和其他用户试图同时改变同一数据,导致 Microsoft Jet 数据库引擎停止进程这样的错误?这种错误到底如
何才能从根本上解决掉!
Access是种桌面数据库,只适合数据量少的应用,在处理少量数据和单机访问的数据库时是很好的,效率也很高。但是Access 本身对于同时访问客户端及容量都有一定的缺陷。当您遇到下面的情况之一,您就应该考虑SQL数据库了:
(1) 数据库大小超过100M;
(2) 在线人数经常超过100人;
(3) 网站经常出现服务失效(英文提示:Service Unavailable);
(4) 服务器经常出现CPU资源被100%占用。
ACCESS数据库支持的最大在线连接数,实际使用中只能支持100过一点,网站工作室开发网站时选择哪种数据库,取决于你的网站流量及程序对数据库的要求。
四、ASP网站ACCESS数据库文件大小与IIS服务器性能
--当内存512遇上Access数据库600M,IO磁盘受伤了
服务器内存就512M,Access数据库(文章库)600多M,结果竟然就是IO受伤了。
早些年写系列,园里不少看过的帅歌,应该有点印象,从开始到现在,还是铁打的Access数据库。
虽然本人目前对Access恨入之骨,皆因囊中羞涩,暂时不得不与之同流合污。
忙碌几个月来,一直运行正常,除了远程界面都变的很卡之外,基本上也没发现什么异常。
然而这个隐藏多年的内伤,如果不是那一天,客服把我服务器给关机了,估计到现在也没察觉,让IO受伤了好几个月了。
以下是故事的过程,有兴趣扫一眼,没兴趣直接拉到后面看结果:
就在那天,服务器让客服给直接关机了,理由是:CPU持续三小时100%,IO磁盘每秒读写50M,为不影响其它用户,直接给关了,让处理完再开机。
前面的CPU百分百是忽悠我的,因为你对客户说,因磁盘读写问题而关机,比较悬,如果说CPU满了而关机,都直观容易理解。
不过,因为刚才我还在看着服务器,CPU正常,根本不可能持续三小时百分&(当然了,偶尔应用程序池刚重启时,瞬时十来秒上到100%这个我知道,由于是短暂的,我一直没查明真相)我让客服给我截图,并恢复开机,我说CPU我会处理。
神奇的客服,给我截了另一张图,说我磁盘读写超标,让我处理完再开机。
从这图看的出来,这台服务器上至少挤了好几十个VPS用户了。
磁盘读写超标,是件很悬的事件,首先这超标的标准是什么?硬盘每秒读写速率达到多少才算超标?这超标又怎么影响到其它用户了?
当然了,谁家的网站不经常读写IO呢,这VPS就这么丁点内存,肯定重点就会转发到硬盘去了,习惯性思维以为是自己的程序问题,因为实在平时对磁盘读写没怎么在意,好像开发这么久,还没怎么和磁盘的负载扯上关系,这一块是一片空白。
于是,当开机后,用户一张一张的截图,说让我处理,着实把我弄急了:
没办法,我只好暂时把秋色园网站停止,说我要去吃饭了(八九点还不让人吃饭),然后问客服,降下来没有,客服说:我看到依然还是有问题 。 我先断开你的网络把,你吃完饭后回来 联系我处理。
我急了,肯定不能断开网络了,毕竟微博粉丝精灵服务还在运行,没办法,我下了下手,把粉丝精灵服务也给关了,问,现在正常了没有,客服又来一张图说:现在正常一些了 0.59是1分钟内的负载,1.68是五分钟内的平均负载
我特纠结,服务器一共就两网站,这全都关了,你只是正常了点,靠,直接把远程密码发给对方,你去折腾,我去吃饭。
快速吃完回来问客服情况怎样,对方三弄几弄,说正常了,我问弄什么了,对方说:&App_Data 这个目录 我随便改了名字。&& 除此之外 我都没有动 &。
这目录下就放着数据库,我说难道和数据库有关?里面有一个数据库600多M(文章表)。
客服说可能,但不确定。
于是我把秋色园解析解到其它地方,然后再开启网站,自己访问一下,才刚开,客服马上问我干啥了,负载又上去了,弄的我只好网站又停了,停了还没用,客服一样叫高,接着又来一张图:
说实在,我都不明白这些代表啥意,于是问了,这些怎么看,对方回答&高于 1 即资源超载,三个数字1分钟,5分钟,10分钟内的系统平均负载&。
我纠结了:不占cpu,不占内存,不占带宽,如果磁盘也不占,这网站怎么折腾?
还有这磁盘,是读高,还是写高?
对方答复&只能看一个系统分析值 ,就是VPS虚拟化自带的分析图&。
接下来,我又把数据库的文件夹给改名了,看似得到的回复是正常了,瞬时好似问题的根源,就在于600多M的Access数据库上。
后续的问题,就是把它分成了10个库,用的在远程直接操作分库,改了下算法,终于,客服不再叫了,远程操作变流畅了。
多年隐藏的内伤表现:
当Access的数据库大小超过内存的大小时,相关问题主要表现在磁盘读写超标(这个正常没法知道)。
内伤一:界面影响特卡(可能会以为是CPU或内存问题)。
内伤二:还会影响到其它VPS用户(这个更不可能得知了)。
内伤三:同时应用程序池重启变慢(会误以为是程序写的不好)。
内伤四:内存占用明显上去了(误以为缓存了Html导致的)。
为此,Access虽然上限是2G,具体还得看你内存有多少,通常硬件不佳内存小才用Access,因此在使用时,量力而大!!!
五、关于网站建设ASP+ACCESS数据库和动态、静态的配合
有好多朋友都会对于ACCESS数据库的在线访问极限有个疑问,特别是当ACCESS数据库达到像94M这样的大小的时候,能承载多少个访客的访问。
对于这个问题,首先,能和ACCESS搭配的开发语言,我们想必都知道非ASP莫属,当ACCESS数据库达94m这么大的时候,如果是电影网站的话,数据量应该在20000条左右,这个时候如果你的网站还是选择动态的话,那么该网站在访客输入完网址按回车后,一般需要23秒-30秒左右的时间打开,至于这个时间当然是由你的服务器处理命令查询的能力相关。但是如果你的同一个服务器上,有别的网站存在,你可以发现,其实其他网站的打开速度都在3-5秒内。
而我们一般都认为一个网站如果超过10秒,甚至超过5秒才能打开的话,访客会感觉到不耐烦,直接叉掉网站的窗口,这样对网站的用户粘性十分不利。
所以我们可以这样一句话总结,当你的网站使用的是ACCESS数据库,并且它的大小是在90M以上的时候,你的网站必须要选择静态化;否则,你应该把它的数量量减少(这个不太可能,如果电影站的数据量减少,等同于你的电影站可以播放的电影就少了,访客肯定不喜欢这个),又或者你继续选择让网站保持着每个访客进来都需要大于20秒的时间才能打开网站(等同于让你的网站废掉)。
六、MS-ACCESS数据库特性简介
通过学习我们发现ACCESS 是桌面型关系数据库,只适合数据量少的应用,在处理少量数据和单机访问的数据库时是很好的,效率也很高。但是它的同时访问客户端不能多于4个。ACCESS数据库有一定的极限,如果数据达到100M左右,很容易造成服务器假死,或者消耗掉服务器的内存导致服务器崩溃。这样我们需要想一想,既然ACCESS有一定的的限制,那另外的一些数据库又怎样呢?我们通过和其他数据库的比较来说明。
我们先具体的来看一下ACCESS的特性,ACCESS是MICROSOFT OFFICE的一个组件,一个前后台结合的数据库&软件&。也就是说ACCESS既拥有用户界面(VB可以用来开发用户界面);也拥有逻辑、流程处理,即VBA语言(VB也可以用来做逻辑处理);又可以存储数据,即在&表&中存储数据。而所有这些都存储在一个 MDB 格式的文件中(当然,也可以是 MDE 等格式)。
ACCESS不是一种存储格式,是一种软件。请大家严格区分 ACCESS 软件与 MDB 格式。VB下调用 MDB 格式(或 JET DB)只是调用一种格式的文件而已,并没有调用到 ACCESS,其实官方说法叫 &VB 的 JET 应用&。另外, MDB 格式的文件也可以被其他开发工具,比如 DELPHI / PB / C / PHP / ASP / CGI / C# / J# / JAVA / VB.NET / C.NET.... 调用。但是被调用的只是 MDB 文件,很多 ACCESS 软件所具有的功能,这些开发工具是无法调用的。而这种格式只要系统中有 OLE DB 引擎就可以支持。
ACCESS 中的一些对象可以被 VB 调用,但是必须在调用的机器上安装 ACCESS 这个软件(COPY一个MDB文件是不够的)或者安装额外的 ACTIVEX 控件
MDB 是一种文件格式,其中的数据以特定方式组织起来,而 ACCESS 这种软件的默认存储格式正好是MDB ACCESS 这个软件本身就具有开发者使用的界面和适合于&最终用户&的界面,也就是我们通常说的前后台结合。
然后我们看一下ACCESS与其它数据库的区别,在这里我们着重来看ACCESS与SQL SERVER的区别:
首先,ACCESS有一定的极限,如果数据达到100M左右,很容易造成服务器假死,或者消耗掉服务器的内存导致服务器崩溃。 而SQL SERVER是基于服务器端的中型的数据库,可以适合大容量数据的应用,在功能上管理上也要比ACCESS要强得多。在处理海量数据的效率,后台开发的灵活性,可扩展性等方面强大。因为现在数据库都使用标准的SQL语言对数据库进行管理,所以如果是标准SQL语言,两者基本上都可以通用的。SQL SERVER还有更多的扩展,可以用存储过程,数据库大小无极限限制。
其次ACCESS是桌面型数据库,优点是:操作灵活、转移方便、运行环境简单,对于小型网站的数据库处理能力效果还不错。缺点是:不支持并发处理、数据库易被下载存在安全隐患、数据存储量相对较小、数据量过大时严重影响网站访问速度和程序处理速度。SQL SERVER是基于服务器端的企业级数据库,适合大容量数据和大流量网站的应用,在性能、安全、功能管理、可扩展性上要比ACCESS强很多,两者并非同级别的数据库,有些功能ACCESS甚至无法做到。缺点是:一般用户无法直接对SQL SERVER进行远程管理、空间租用的成本比ACCESS稍高。
再次,就规模来说,VFP是一个中型数据库开发软件,比不上ORICAL、INFOMATION、POWERBUILDER等,是微软购并FOX公司后开发的一个数据库开发软件。可用于中型数据库软件工程的建构。可以用来做商业开发ACCESS严格来说不是一个数据库应用程序的开发工具,基本上是一个办公应用软件;不能用于商业用途的开发。只能在OFFICE环境下运行,受OFFICE本身的限制。所用语言只是基于VB语言的辅助性编程的VBA。就其规模来说属于小型的数据库应用软件。早年曾有过ACCESS2.0(英文版)的可以用于商业用途的数据库开发软件。但后来不知道为什么没有继续研发出新的ACCESS版本。 两者可拓展型相比,ACCESS好些,可使用的编程语言较多。ACCESS是 MICROSOFT OFFICE 的一个组件,一个前后台结合的数据库&软件&。
也就是说ACCESS既拥有用户界面(VB可以用来开发用户界面);也拥有逻辑、流程处理,即VBA语言(VB也可以用来做逻辑处理);又可以存储数据,即在&表&中存储数据。而所有这些都存储在一个 MDB 格式的文件中(当然,也可以是 MDE 等格式)。
总之,每一种数据库都有它们各自的优势和缺点,作为计算机系专业的学生,我们有必要掌握它们各自的优缺点以便灵活的掌握各种数据库的应用,并在行业中取得优秀的成就。
七、在线压缩Access数据库的ASP函数代码&
Function%20CompactDB%28dbPath%2C%20boolIs97%29%0ADim%20fso%2C%20Engine%2C%20strDBPath%0AstrDBPath%20%3D%20left%28dbPath%2Cinstrrev%28DBPath%2C%22%5C%22%29%29%0ASet%20fso%20%3D%20CreateObject%28%22Scripting.FileSystemObject%22%29%0AIf%20fso.FileExists%28dbPath%29%20Then%0ASet%20Engine%20%3D%20CreateObject%28%22JRO.JetEngine%22%29%0AOn%20Error%20Resume%20Next%0AIf%20boolIs97%20%3D%20%22True%22%pactDatabase%20%22Provider%3DMicrosoft.Jet.OLEDB.4.0%3BData%20Source%3D%22%20%26%20dbpath%2C%20_%0A%22Provider%3DMicrosoft.Jet.OLEDB.4.0%3BData%20Source%3D%22%20%26%20strDBPath%20%26%20%22temp.mdb%3B%22%20_%0A%26%20%22Jet%20OLEDB%3AEngine%20Type%3D%22%20%26%20JET_3X%pactDatabase%20%22Provider%3DMicrosoft.Jet.OLEDB.4.0%3BData%20Source%3D%22%20%26%20dbpath%2C%20_%0A%22Provider%3DMicrosoft.Jet.OLEDB.4.0%3BData%20Source%3D%22%20%26%20strDBPath%20%26%20%22temp.mdb%22%0AEnd%20If%0A%0AIf%20Err%20Then%0Aresponse.write%20%22%3Cscript%20LANGUAGE%3D%27javascript%27%3Ealert%28%27%u65E0%u6CD5%u8BC6%u522B%uE%u5E93%u7C7B%u578B.%27%29%3Bhistory.go%28-1%29%3B%3C/script%3E%22%0Aresponse.end%0Aend%20if%0Afso.CopyFile%20strDBPath%20%26%20%22temp.mdb%22%2Cdbpath%0Afso.DeleteFile%28strDBPath%20%26%20%22temp.mdb%22%29%0ASet%20fso%20%3D%20nothing%0ASet%20Engine%20%3D%20nothing%0ACompactDB%20%3D%20%22%3Cscript%3Ealert%28%27%u538B%u7F29%uF%uFF01%27%29%3Bjavascript%3Ahistory.go%28-1%29%3B%3C/script%3E%22%0AElse%0ACompactDB%20%3D%20%22%3Cscript%3Ealert%28%27%u627E%u4E0D%u%u636E%u5E93%uFF01%5Cn%u8BF7%u68C0%u67E5%uE%u5E93%u8DEF%u5F84%u662F%u%u%u8BEF%uFF01%27%29%3Bhistory.back%28%29%3B%3C/script%3E%22%0AEnd%20If%0AEnd%20Function%0A
个性签名:文化如果被没有道德的人通晓了,就可能被利用;技术如果被没有文化的人掌握了,就可能被滥用!道德、文化、技术三种素质之中,道德是首要的,而技术是最次要的!因此,我们在幼儿园中习道德,在中小学里学文化,到了大学才研究专业技术!
【】栏目相邻文章:
?上一篇(3564号):?下一篇(3573号):
〖〗《》相邻文章:
?上一篇(3569号):?下一篇(3571号):
最新相关主题文章:
?〖〗?〖〗?〖〗?〖〗?〖〗
&先生:&邮箱:&注册:&登录:13-7-3/22&文章:&评论:&精华:&头衔:网站开发&86
1楼()&发表:13-2-26 21:25
&修改:14-2-23 20:25&
分析这些网络资料,结合本站(梦艺网)运行的实践经验,我得出下面两点个人看法
  1、ACCESS数据库至少可以容纳10万条以上的记录,文件大小以达到300M以上也能正常使用,用其与ASP搭建的网站能够承受至少100人同时在线,完全可以满足各种中小论坛、博客、企业网站的数据存贮需求。
  2、ACCESS数据库的速度性能与其文件的绝对大小、记录数量的绝对多少关系不明显,而主要取决于数据库文件大小与服务器(或虚拟主机空间)的最大可用物理内存。如果内存大于数据库文件,则查询速度不会随着数据库文件大小的不断增加而发生急速降低;而当数据库文件增加到大于最大可用物理内存后,查询速度会陡然下降,服务器会频繁读写磁盘,CPU使用率升高,同主机其它网站的速度(尤其是磁盘文件的访问速度)也会受到明显拖累。
下面是网上看到的三个ACCESS数据库超大网站的例子
1、动易06sp6的ACCESS数据库达到2G了,该怎么办?
2、ACCESS数据库大小100M警告是指的某张表空间100M还是整个数据库100M?
3、动易系统ACCESS数据库最大存储为大?
个性签名:文化如果被没有道德的人通晓了,就可能被利用;技术如果被没有文化的人掌握了,就可能被滥用!道德、文化、技术三种素质之中,道德是首要的,而技术是最次要的!因此,我们在幼儿园中习道德,在中小学里学文化,到了大学才研究专业技术!
本文已被点击了2955次,共有1条评论 &
&请输入您的呢称(*):
&您的QQ:
&附加信息:

我要回帖

更多关于 access数据库下载 的文章

 

随机推荐