位置: 编程技术 - 正文

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

  • 半年奖个人所得税怎么算的
  • 印花税购销合同改为买卖合同
  • 企业所得税和增值税重复收税了吗
  • 金税盘递减税款2022
  • 开票信息中电话号码变更
  • 市场推广费属于广告费用吗
  • 固定资产后续支出资本化条件是什么
  • 担保费能抵扣吗
  • 股利支付率怎么找数据
  • 机票报销需要什么单据
  • 聘用人员工资福利待遇
  • 购买座机计入哪个科目?
  • 通过无偿取得的成果
  • 代扣工资申请怎么写
  • 固定健身器械使用方法
  • 销售房地产要交培训费是传销行为吗
  • 转籍车辆是什么意思
  • 固定资产处置计算公式
  • 现金为负数时怎么做账
  • 手续费进项可以抵扣吗
  • windows10如何设置密码
  • 银行汇票计入什么费用
  • 对方开红票需要寄给我吗
  • win10双系统修改名称
  • 农业种植公司要纳税吗
  • 发票金额大于报销金额违法吗
  • php大量数据处理
  • 注册表被恶意锁定怎么恢复正常
  • 失控发票进项转出后要补企业所得税吗
  • 小微企业直接融资和间接融资
  • 工程物资已到发票怎么开
  • 承租方的物品如何处理
  • 37.JavaScript对象与JSON格式的转换,JSON.stringify、JSON.parse方法的使用方法和注意事项
  • 大小周是否违反劳动法
  • 2021年食用油税率
  • 金税三期可以申报个税吗
  • 注册公司行业分类有多少种
  • 子公司分公司和办事处账务上的区别有哪些
  • 0申报残保金逾期影响企业信用评级吗为什么
  • 单位收的房租可以发工资吗
  • wordpress全站伪静态
  • python中input转换
  • 银行贷款可以置换险资吗
  • 企业电子发票重开流程
  • 应交税费案例分析题
  • 个体户开票额度超了
  • 购买旧固定资产入账
  • etc发票写着不征税怎么办
  • 保理公司会计核算讲解
  • 报废产品账务的处理方法
  • 旅行社差额征税全额开票和差额开票
  • 银行支付结算管理办法
  • 金税盘服务费可以退吗
  • 重大水利工程建设
  • 公司之间的借款利息有最小限制吗
  • 退回以前年度所得税账务处理
  • 赠送油卡需要代理吗
  • 企业营运能力分析
  • wind如何安装
  • 判断某个字段的值是否在指定的范围内
  • mysql数据库增加列
  • windows10设置无法使用
  • centos启动有三个选项
  • centos的命令
  • 果粉必修课 盘点Mac OS X系统发展史
  • vim编辑器命令大全
  • suse配置网络
  • win7计划任务设置
  • Ext JS 4实现带week(星期)的日期选择控件(实战一)
  • android中的active_result
  • 如何正确使用零钱
  • python把html页面生成图片
  • C#绘制准心脚本
  • 使用筷子就餐会不会传染乙肝病毒
  • shell脚本-lt
  • javascript高级程序设计最新版
  • android PopupWindow显示位置设置
  • 国家税务总局河北地税局
  • 河北省十大杰出五四青年
  • 党员e先锋中的支部云课堂在哪
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设