高并发优化Sql代码
时间:2011-11-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(每秒事务数)的解决方案
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(每秒事务数)的解决方案
作者: XaresX 发布时间: 2011-11-18
都加锁了 木有什么好办法
作者: fredrickhu 发布时间: 2011-11-18
table1 加个触发器?
作者: ssp2009 发布时间: 2011-11-18
不加 top(变量) 试试?
作者: qianjin036a 发布时间: 2011-11-18
或者,用触发器代替后面的一句.
作者: qianjin036a 发布时间: 2011-11-18
想实现这种功能,有没有其他的实现方式,就是用户购买后发给券给别人,卷有规则,不能重复。
作者: XaresX 发布时间: 2011-11-18
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28