位置: 编程技术 - 正文

SQL Server并发处理存在就更新解决方案探讨(sqlldr并发)

编辑:rootadmin

推荐整理分享SQL Server并发处理存在就更新解决方案探讨(sqlldr并发),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:sql并发控制怎么实现,sqlserver并发处理,sqlserver数据库并发设置,sqlserver数据库并发设置,sql server 并发,sqlserver并发处理,sql并发控制怎么实现,sqlserver数据库并发设置,内容如对您有帮助,希望把文章链接给更多的朋友!

前言

本节我们来讲讲并发中最常见的情况存在即更新,在并发中若未存在行记录则插入,此时未处理好极容易出现插入重复键情况,本文我们来介绍对并发中存在就更新行记录的七种方案并且我们来综合分析最合适的解决方案。

探讨存在就更新七种方案

首先我们来创建测试表

解决方案一(开启事务)

我们统一创建存储过程通过来SQLQueryStress来测试并发情况,我们来看第一种情况。

同时开启个线程和个线程出现插入重复键的几率比较少还是存在。

解决方案二(降低隔离级别为最低隔离级别UNCOMMITED)

此时问题依旧和解决方案一无异(如果降低级别为最低隔离级别,如果行记录为空,前一事务如果未进行提交,当前事务也能读取到该行记录为空,如果当前事务插入进去并进行提交,此时前一事务再进行提交此时就会出现插入重复键问题)

解决方案三(提升隔离级别为最高级别SERIALIZABLE)

在这种情况下更加糟糕,直接到会导致死锁

此时将隔离级别提升为最高隔离级别会解决插入重复键问题,但是对于更新来获取排它锁而未提交,而此时另外一个进程进行查询获取共享锁此时将造成进程间相互阻塞从而造成死锁,所以从此知最高隔离级别有时候能够解决并发问题但是也会带来死锁问题。

SQL Server并发处理存在就更新解决方案探讨(sqlldr并发)

解决方案四(提升隔离级别+良好的锁)

此时我们再来在添加最高隔离级别的基础上增添更新锁,如下:

运行多次均未发现出现什么异常,通过查询数据时使用更新锁而非共享锁,这样的话一来可以读取数据但不阻塞其他事务,二来还确保自上次读取数据后数据未被更改,这样就解决了死锁问题。貌似这样的方案是可行得,如果是高并发不知是否可行。

解决方案五(提升隔离级别为行版本控制SNAPSHOT)

上述解决方案也会出现插入重复键问题不可取。

解决方案六(提升隔离级别+表变量)

经过多次认证也是零错误,貌似通过表变量形式实现可行。

解决方案七(提升隔离级别+Merge)

通过Merge关键来实现存在即更新否则则插入,同时我们应该注意设置隔离级别为SERIALIZABLE否则会出现插入重复键问题,代码如下:

多次认证无论是并发个线程还是并发个线程依然没有异常信息。

总结

本节我们详细讨论了在并发中如何处理存在即更新,否则即插入问题的解决方案,目前来讲以上三种方案可行。

解决方案一(最高隔离级别 + 更新锁)

暂时只能想到这三种解决方案,个人比较推荐方案一和方案三, 请问您有何高见,请留下您的评论若可行,我将进行后续补充。

解决方案二(最高隔离级别 + 表变量)

解决方案三(最高隔离级别 + Merge)

暂时只能想到这三种解决方案,个人比较推荐方案一和方案三, 请问您有何高见,请留下您的评论若可行,我将进行后续补充。

标签: sqlldr并发

本文链接地址:https://www.jiuchutong.com/biancheng/324400.html 转载请保留说明!

上一篇:Sqlserver事务备份和还原的实例代码(必看)(sqlserver完整备份)

下一篇:详解SQL Server如何修改数据库物理文件的存在位置(sql server.)

  • 个税申报按权责发生制行吗?
  • 居间费用如何纳税
  • 稿酬所得个人所得税税率表
  • 应收账款平均余额包括应收票据吗
  • 城镇土地使用税的征税范围有哪些
  • 费用计入管理费用与销售费用的区别
  • 资产负债表利润表和现金流量表之间的关系
  • 不需要缴纳税款和服役的是形势户寺观户
  • 反结账只能反结上月的账吗
  • 住宿费进项税分录
  • 货架折旧年限
  • 固定资产一次性扣除怎么做账
  • 一般纳税人不开票收入怎么填增值税申报表
  • 抵款车辆低价卖给职工账务处理:
  • 股权变更前账务怎么处理
  • 预收账款和预付账款什么时候用
  • 注册资本印花税计入哪个科目
  • 雇员个人所得税
  • 小企业处置固定资产
  • 退税勾选后怎么申报
  • 进项税大于销项税是不是不用交税了
  • 暂估入库的货物销售了当月多交增值税了
  • 股利分配是在当期损益吗
  • 对公直接转私人卡会怎么样
  • 厂房装修费用计入制造费用吗
  • 免租金期间交增值税吗
  • 商贸公司如何结算成本
  • 在建工程进项税额转出
  • 财政补助收入的账务处理
  • 置换土地如何做账务处理
  • 预缴企业所得税分录
  • yolo部署到服务器
  • 如何知道是干皮还是油皮
  • php下载文件夹
  • thinkphp d
  • php根据日期显示星期几
  • “从零开始”
  • chrome浏览器快捷方式
  • php判断useragent
  • 基于深度学习的轴承寿命预测实践,开发CNN、融合LSTM/GRU/ATTENTION
  • 小程序navigator组件
  • 申请退税怎么算
  • vue有哪些方法
  • 如何进行合理的库存管理
  • 不交社保个税怎么处理
  • 税控盘开票日期一般截止到下个月几号
  • 城建税退回怎么做分录
  • 母子公司资产划转税收政策
  • 新版电子税务局怎么增加办税人员
  • 哪些增值税专用发票能抵扣进项税
  • 兼职人员的个税怎么计算
  • 普通发票做账需要价税分离吗
  • 销项负数发票给对方哪一联
  • 公司购买防疫物资的申请
  • 闲置固定资产如何折旧
  • 居间活动费用由谁负担
  • 一次性付款的优势
  • 股东向公司借款协议
  • 工业企业进项税和销项税均为17%
  • sql server怎么执行
  • Win10 Mobile Creators预览版14959更新修复内容与已知问题汇总
  • windowsserver2008无线网不能连接
  • hyper-v怎么样
  • win8应用商店废了
  • ubuntu virtual box
  • intel8代装win7
  • ie11打不开闪退解决办法win 7
  • win7打开文件总是询问
  • win8系统咋样
  • 折腾linux 没意义
  • nodejs 插件开发
  • Unity3D面试题整合
  • opengl实现光线追踪
  • 常用的jquery鼠标事件
  • vue分页组件page
  • unity向量的规范化
  • unity3dextractor
  • 安卓使用icloud
  • 上海2023年个人所得税计算
  • 个体户是否需要缴纳企业所得税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设