导航:首页 > 编程大全 > asp并发数过大数据库出错

asp并发数过大数据库出错

发布时间:2025-01-04 03:10:02

1. asp.net 数据库并发

我个人喜欢把并发分成三类:
数据库级别的并发:这发生在多个系统事务在同一时间试图操作同样的数据的
时候,此时往往通过事务的隔离级别来解决.隔离级别过小会使数据不安全,而隔离级别过大又会降低数据库性能.因此大部分数据库将隔离级别设置成Read Committed,意思就是说一个事务在执行过程中可以得到其他事务已经提交的更新(注意是更新而不是插入). 而此时为了在一个事务内的多次查询中获得同样的数据,我们往往还需要将这多个查询放在一个只读事务里.
代码级别的并发:这发生在某个类中具有不安全因素(例如具有多个线程都可以修改的类变量),而这个类又处在多线程访问的模式下. 此时我们往往通过具体语言提供的同步机制来解决,在安全的同时也降低了性能,因为一个线程在访问时其他线程必须等待.
应用程序级别的并发: 这发生在多个业务事务同一时间操作同样的数据的时候,这会带来丢失更新和不一致读,在对数据的实时性要求不是很高的系统中,不一致读往往不是问题,用户也不会觉得不合理. 而在用户操作数据时发生丢失更新往往不能忍耐. 此时我们的解决方案是应用程序级别的锁定. 一种是乐观锁,通过给记录加版本号,在操作提交时如果发现在操作期间其他人修改过该条记录,则提示用户更新失败. 这适合在并发机率很低的情况使用,因为用户很可能填了一堆东西你却告诉他失败需要重填,他会发疯. 另一种是悲观锁,通过严格限制来避免冲突. 悲观锁分为写锁和读锁,写锁很简单,一个人在操作一条记录的时候其他人只能读该记录,而不能操作. 而读锁很严格,它又分为共享读锁和独占读锁,共享读锁指一个人只要在读该记录的时候,其他人就也只能读不能操作.而独占读锁是所有锁中最严格的,他实现只要一个在正在读该记录,其他人就不能读,这是为了保证用户获得的一定是最新记录,它假定其他人只要在读一条记录,就可能会修改它. 因为悲观锁需要在操作期间不断的加锁解锁,会严重影响性能,并且实现起来很麻烦,所以尽量少使用.
注: 系统事务指数据库级别的事务,对应用程序来说是指在一次请求或一次方法调用的过程中发生的数据处理. 与数据库中的事务是一个概念. 而业务事务指用户完整执行一次业务相关的操作过程中的数据处理.一次业务事务往往包含多个系统事务,例如首先将数据查询出来,然后修改提交,这是一次业务事务,但包含了查询和修改两个系统事务.

2. ASP程序如何解决多用户的并发更新数据库问题

好象这问题不必要考虑
我之前也考虑这问题但是后来却发现根本是考虑多余的
ASP是在服务器上运行 所有的操作都是服务器来执行
代码只能一条一条往下 而服务器只有一个 所以不会存在这个问题
这只是我认为

3. 数据库连接出错,请检查数据库连接文件中的数据库参数设置

错误提示:数据库连接出错,请检查Conn.asp 文件中的数据库参数设置。错误原因:conn.asp 中的有关数据库参数设置不正确。解决方法:access 版要注意数据库路径要使用绝对路径,SQL 版要注意把SQL2000 的身份验证模式改成混合模式。下面这是conn.asp中有关数据库的设置,一定要正确!如果是ACCESS数据库,请认真修改好下面的数据库的文件名db = \datab……
关于 conn.asp 之己见

在asp中,为了代码的重用,把某些程序都模块化
比如把连接数据库的一些代码写在一个文件里,在其他地方加载进来就是了,方便快捷.
在实际工作中用得也多,后来发现,以前的某些写发是不大妥当的.
以前写 conn.asp 的时候都这样写:
Quote
<%
Dim Def_Sample,Conn
Def_Path=server.MapPath("data.mdb")
Def_Sample="DBQ="+Def_Path+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};" '连接字串
Set Conn=Server.CreateObject("ADODB.CONNECTION")
Conn.Open Def_Sample'创建对象
%>
这样在其他地方使用的时候,包含 Conn.asp 即可
同时这样也带来一个问题:
如果人家直接访问你的 Conn.asp 的话,那么建立的 conn 对象在程序中就没有关闭,就会耗掉一些服务器资源,如果有人建立多个连接恶意访问的话,那么....
服务器的资源~~
具体资源多少,没有测试,应该还是不少吧?
所以现在写程序的时候都写成 Config.asp
仅在里边定义连接字串,在使用的时候在创建对象,使用完对象就关闭
Config.asp:
Quote
<%
Dim Def_Sample
Def_Path=server.MapPath("data.mdb")
Def_Sample="DBQ="+Def_Path+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};" '连接字串
%>

4. 数据库连接出错,请检查Conn.asp文件中的数据库参数设置。网站建设用的是KesionCMS的建站系统

你这个数据库是绝对路径,KS_Data必须要在iis的根目录下(如iis指向web目录,KS_Data必须在web目录下),你看是不是多了一个上层目录

阅读全文

与asp并发数过大数据库出错相关的资料

热点内容
1050ti不兼容win10 浏览:597
外国男性同性恋网站是多少 浏览:976
qqpcmgr是什么文件 浏览:911
linux删除arp 浏览:972
微信小程序绑定域名 浏览:410
pdf文件更改 浏览:979
网站视频不允许下载怎么录屏 浏览:196
苹果4下载完万能钥匙怎样使用呀 浏览:86
程序员和其它人员比例 浏览:580
ps每个工具的用途图解 浏览:421
ae文件是什么格式的 浏览:580
保密文件柜尺寸多少 浏览:998
dockernginx数据在哪里 浏览:216
m218fw苹果电脑驱动下载 浏览:115
手机qq浏览文件服务 浏览:962
怎样知道微信好友用了哪些app 浏览:466
linux设置时间函数 浏览:182
全民砰砰砰安卓版 浏览:380
边锋网络游戏违规查处 浏览:560
xp系统怎么清除垃圾文件 浏览:316

友情链接