- 10
- 0
- 约3.84千字
- 约 24页
- 2016-12-20 发布于重庆
- 举报
并发控制案例分析 主讲:吕震宇 说明 实验环境: Visual Studio .NET 2005 SQL Server 2005 其它说明: SQL Server 2000 + VS.NET 2003 也可以 需要对代码做细微调整 源代码及数据库见附件 并发控制案例 设某银行存款帐户数据如下表: 现在要求编写一程序,完成两项功能:存款与取款。每次操作完成后向明细表中插入一行记录并更新帐户余额。 1、问题似乎很简单 解决办法: ① 读取最后一行记录的帐户余额数据 ② 根据存、取款金额计算出新的帐户余额 ③ 将新的记录插入表中 真的这么简单? 在不考虑并发问题的情况下是可行的 如果考虑并发,问题就多了 2、让我来想一想 问题所在:并发问题! 解决办法:加锁! 在读最后一条记录时先加上锁。 怎么加锁?加什么锁? 读之前加共享锁? 读之前加排它锁? 读之前加共享锁? 显然不行! 读之前加排它锁,事务完成再释放? 三级封锁协议中没有定义读前加排它锁(暂且不管) 显然不行! 还不止这些 如何读取帐户余额? SELECT TOP 1 帐户余额 FROM 帐户明细 ORDER BY 序号 DESC 存在的问题: 在并发场景下你怎么确定它一定是最后一行? 随着数据量增大越来越没效率(因为需要排序) 3、看来问题真的不是这么简单 问题出在哪里呢? 从系统设计一开始我们就走错
您可能关注的文档
最近下载
- 专题15+电流+电路+电压+电阻(复习课件)(全国通用)2026年中考物理一轮复习讲练测.pptx VIP
- 设备管理综合评价细则.pdf VIP
- 心肺复苏培训流程ppt课件(优质ppt).pptx
- 2026年福建省能源石化集团有限责任公司招聘备考题库有完整答案详解.docx VIP
- 中国邮政集团公司校园招聘考试真题及答案.pdf VIP
- 贵州农商银行培训班考试.doc VIP
- 2026高考化学专项练习 有机物命名基础70题【原卷版】.docx VIP
- 2026年福建省能源石化集团有限责任公司招聘备考题库精编答案详解.docx VIP
- 山东省2026年春季高考《财税类》专业知识模拟试题(含答案解析).docx
- 2026贵州农商联合银行社会招聘20人备考题库附答案详解.docx VIP
原创力文档

文档评论(0)