位置: 编程技术 - 正文

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.)

  • 加工企业税收优惠政策
  • 甲乙公司与银行之间的往来如何记账
  • 个人出租商铺如何缴纳房产税
  • 减免增值税申报表
  • 研发技术服务属于什么费用
  • 会计核算形式
  • 企业租入固定资产发生的改良支出计入什么科目
  • 运输公司赔偿计入什么科目
  • 公司代收生育津贴怎么做账
  • 代扣代缴城建税可以享受六税两费
  • 按计划成本发出原材料怎么算
  • 年末要计提所得税分录
  • 通用机打发票现在还有吗
  • 一般纳税人辅导期
  • 转让股权怎么写简单
  • 纳税人是非开业户是什么意思
  • 兼职取酬案例剖析
  • 金融企业贷款利息收入确认
  • 股东与公司之间是什么关系
  • 电子发票已缴税怎么查
  • 收入冲正
  • 专票只能开一万的额度开了三万的发票
  • 升级设备属于什么科目
  • 税局代开专票会计分录怎么写?
  • 完工百分比法确认收入应注意的问题
  • 应付职工薪酬年底怎么结转
  • 自然人独资企业交什么税
  • 员工宿舍水电费计入什么会计科目
  • php 注册
  • 结算审计流程图
  • 公司支付保洁费可以付给个人吗
  • 长期借款还款
  • php中session什么意思
  • php打包网站并在哪里打开
  • 任意公积金可以不提取吗
  • php ajax 教程
  • 支付境外培训费代扣啥税
  • 资产负债表货币资金公式
  • cakephp菜鸟教程
  • 卡比托丽娜·瓦西里耶娃
  • 深度学习:图像去雨网络实现Pytorch (二)一个简单实用的基准模型(PreNet)实现
  • vue3响应式对象数组
  • 怎么买好空调
  • 息税前利润为什么不减利息
  • 附表一般写在哪
  • 什么是印花税,怎么征收
  • 企业收到税务退税通知书
  • 如何解决面颊毛孔粗大
  • mysql日志记录
  • 小微企业的资产负债率一般为多少
  • 退税已到账还可以更改吗
  • 顾问费交多少税
  • 公司卖出货物没有发票
  • 无法支付的应付账款为什么计入营业外支出
  • 客户试用产品期间怎么跟进
  • 结转公允价值变动
  • 测距仪计入什么科目
  • 专票错误已认证需要退回吗?
  • 怎么看懂自己的收入纳税
  • 母子公司往来款是否涉及交税
  • 外贸整个流程图
  • Centos MySQL 5.7安装、升级教程
  • 运行软件时遇到的问题
  • 微软补丁修复时出现蓝屏现象
  • xp系统每次开机都重启
  • linux文件后缀名解释
  • centos 安装rpm软件包的命令
  • linux添加系统调用的步骤
  • windows10 2021预览版
  • jquery 引入js
  • js jquery区别
  • python读写文件wr
  • htmlcssjavascript入门经典pdf
  • android混淆后怎么破解
  • 江苏叉车证查询网上查询
  • 咨询服务费税率2020小规模
  • 美国海关税收起征点
  • 组织创新包括哪些类型
  • 没盖发票专用章可以补盖吗
  • 化妆品关税怎么算
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设