位置: 编程技术 - 正文

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

  • 一般纳税人开普票税率是3%还是13%
  • 职工薪酬支出及纳税调整
  • 增值税月末结转还是年末结转
  • 一般纳税人注销公司麻烦吗
  • 个体户怎么开增值税普通发票过程
  • 设备进项税额转出会计分录
  • 公共汽车出租车
  • 公司零星支出没有发票收据怎么开
  • 税款的汇兑损益如何做账
  • 销售报废车辆按多少计提销项税额
  • 外购材料委托加工分录
  • 关联企业无偿使用土地
  • 佣金可以直接转到个人账户吗
  • 企业交的社保是什么
  • 营业执照许可经营信息怎么填
  • 建筑企业收到的成本发票可以直接进主营业务成本吗
  • 没有进项开销项发票是虚开发票吗
  • 个人借款给公司利息多少合法
  • 合作经营收入分成发票税务名称怎么填
  • 收回代扣社保怎么处理
  • 企业高管需要什么证书
  • 合同条款签订
  • 现金流量表的编制基础是权责发生制
  • 超市代金券买什么最划算
  • php的数组函数
  • 记账凭证的编制方法有几种
  • php的递归
  • 体积最小的机械硬盘
  • .ico是什么文件
  • 预付采购材料货款
  • 投资性房地产后续计量从成本模式转为公允价值模式属于
  • 溢缴退费是什么意思
  • 公司哪些支出费用可以扣
  • 财产赔偿账务处理办法
  • 增值税申报表销项税额怎么算?
  • 甲公司购入一台不需要安装
  • 企业自产自用的产品需要缴纳增值税吗
  • 技术服务收入属于销售营业收入吗
  • 应收账款的注意要点
  • 重分类调整的内容包括什么
  • 银行抵债资产如何更快处置
  • 采购未到票如何入账
  • 装饰公司财务工作内容
  • 管理费用怎样分摊归集到产品
  • 汽车固定资产清理怎么交税
  • 个人所得税手续费返还政策文件
  • 如何计算税前工资
  • 管家婆进货单科目名称怎么录入?
  • 微信转账和支付宝转账有法律效力么
  • 购电脑怎么入账
  • 旅游费用如何记账科目
  • 职工薪酬包括哪四项内容
  • mysql怎么实现
  • mysql修改默认端口方法
  • 比较常见的成语有哪些
  • ubuntu有线正在连接
  • 阿里云安装
  • linux怎么使用ping命令
  • Win10 Mobile 10586无法更新应用怎么办 一招教你解决
  • win10开机图标就变乱
  • 批处理常用命令
  • bat批处理删除文件
  • 网页使用的字体中最具可读性.最易浏览的是
  • perl删除文件夹
  • jquery与ajax获取特殊字符实例详解
  • 拥有一个属于自己的空间高中作文
  • system命令行
  • vue父子组件传值props
  • jquery html5 视频播放控制代码
  • node+express+ejs使用模版引擎做的一个示例demo
  • js模拟用户点击
  • 三分钟带你玩转灭火器
  • js引用传递
  • jquery删除dom
  • js中refresh
  • jabsorb笔记_几个小例子第1/2页
  • 辽宁取暖补贴发放标准2020
  • 公司被分立,应将分立后的单位
  • 重庆税务局发票作废怎么处理
  • 安置残疾人即征即退
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设