高并发优化Sql代码

XaresX 2011-11-18 03:50:18
大约意思是这样的,我有一个库存表存一些券类信息,我需要根据用户买了多少张券,去更新这些券表示使用,如下代码
update top (变量) table1 with(updlock) set IsUsed = 1,OrderId=变量 where IsUsed = 0 and CommodityId=变量
IsUsed,OrderId,CommodityId 都有索引

再根据更新OrderId去获取券
insert into table2 select * from table1 where OrderId= 变量

由于需要防止更新时发生并发,所以加了updlock,但是这样的效率不高tps(每秒事务数)上不去

请各位大侠给个能提高tps(每秒事务数)的解决方案
...全文
130 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
XaresX 2011-11-18
  • 打赏
  • 举报
回复
想实现这种功能,有没有其他的实现方式,就是用户购买后发给券给别人,卷有规则,不能重复。
-晴天 2011-11-18
  • 打赏
  • 举报
回复
或者,用触发器代替后面的一句.
-晴天 2011-11-18
  • 打赏
  • 举报
回复
不加 top(变量) 试试?
快溜 2011-11-18
  • 打赏
  • 举报
回复
table1 加个触发器?
--小F-- 2011-11-18
  • 打赏
  • 举报
回复
都加锁了 木有什么好办法

22,210

社区成员

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

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