首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

数据库并发有关问题?(100分)

2011-12-25 
数据库并发问题?(100分)每次应聘都会问到这个问题~数据库并发,怎么解决?求高人指点,越详细越好!最好是个人

数据库并发问题?(100分)
每次应聘都会问到这个问题~
数据库并发,怎么解决?
求高人指点,越详细越好!
最好是个人的理解,不要去网上荡!

[解决办法]
用数据库事务来控制.
[解决办法]
可以上我的博客看看,我找了几篇相关的文章。
blog.sina.com.cn/rbp sqlserver的话可以用事务处理+存储过程解决
[解决办法]
原来是数据库原理没学好
[解决办法]
呵呵~原理确实没学好!~
=======
那最好现找本书看看,什么是并发性,什么是事务,如何事务处理

产品化数据库都支持事务处理,但是实现策略各不一直,具体看手册
[解决办法]
如果我问这个问题,我不是想知道对方是否知道事务处理这么初等的概念,而是想知道是否有从使用事务造成失败(死锁)中获得的经验,例如:

事务应该尽量维持在“瞬间”完成,例如2秒钟以内完成。否则就应该修改业务逻辑设计、改为异步执行等等。
[解决办法]
哦,搬个凳子听课喽
[解决办法]
用一个例子来理解一下吧
一个最常见的并发操作的例子是火车/飞机订票系统中的订票操作。例如,在该系统中的一个活动序列:

①甲售票员读出某航班的机票张数余额A,设A=10;

②乙售票员读出同一航班的机票张数余额A,也是10;

③甲售票员卖出一张机票,修改机票张数余额A=A-1=9,把A写回数据库;

④乙售票员也卖出一张机票,修改机票张数余额A=A-1=9,把A写回数据库。

结果明明卖出两张机票,数据库中机票余额只减少1。这种情况称为数据库的不一致性。这种不一致性是由甲、乙两个售票员并发操作引起的。在并发操作情况下,对甲、乙两个事务操作序列的调度是随机的。若按上面的调度序列行,甲事务的修改就被丢失。这是由于第4步中乙事务修改A并写回覆盖了甲事务的修改。

并发操作带来的数据库不一致性可以分为四类:丢失或覆盖更新、脏读、不可重复读和幻像读,上例只是并发问题的一种.

所以避免并发要用数据的用数据库事务来控制.就如cantops(翡翠梦境里的熊猫人)所说的
具体
BEGIN TRAN
插入语句1
获取刚才插入记录的ID
插入语句2
COMMIT --执行事务
IF @@Error> 0
BEGIN
ROLLBACK --如果错误就回滚刚才的插入
END
[解决办法]
事务应该尽量维持在“瞬间”完成,例如2秒钟以内完成。否则就应该修改业务逻辑设计、改为异步执行等等。
==============================
不错
[解决办法]
并发操作带来的数据库不一致性可以分为四类:丢失或覆盖更新、脏读、不可重复读和幻像读

赞成!

解决方法:用事物~~
[解决办法]
并发操作带来的数据库不一致性可以分为四类:丢失或覆盖更新、脏读、不可重复读和幻像读,上例只是并发问题的一种.
这位说的到位
[解决办法]
如果我问这个问题,我不是想知道对方是否知道事务处理这么初等的概念,而是想知道是否有从使用事务造成失败(死锁)中获得的经验
===========
我小学没有毕业,是不敢越级高中的


事务应该尽量维持在“瞬间”完成,例如2秒钟以内完成。否则就应该修改业务逻辑设计、改为异步执行等等。
========
除非实践经历,否则是不回有这种体会的!

[解决办法]
学习
[解决办法]
长见识了。和楼主共勉。
[解决办法]
学习了。
[解决办法]
不错

热点排行