关于大并发 锁的问题.

yfcdsy 2021-02-19 05:45:01
Begin Tran

select top 1 @Amount=Amount from [Sells] where ID=@ID and key=1 order by ID Desc

业务逻辑(处理比较复杂,大概0.3秒用时)
--更新字段
update sells set key=1 where id=@id
Commit Tran


由于大并发, 还没有等到改值, 其他用户也读取了 这条记录. 导致业务处理错误.
...全文
62 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
二月十六 2021-02-19
  • 打赏
  • 举报
回复
在事务中可以把sells 锁住,不让读取,但是这样可能会影响整体效率

22,301

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧