位置: 编程技术 - 正文

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

  • 季度所得税计提
  • 一般计税方法是全额计税吗
  • 跨年取得的发票怎么入账
  • 公司两个股东各占50%股份,法人是股东
  • 社群运营收入怎么样
  • 维修费开票属于哪个大类
  • 农业生产成本二级科目有福利费支出吗
  • 员工预支工资账务处理
  • 个税换电脑了还能查到之前的申报记录吗?
  • 进口增值税抵扣信息委托核查函
  • 普通发票开折扣销售能冲减销售吗
  • 公司管理层的作用
  • 作废的发票怎么复制开新票
  • 税控盘服务费跨年还能抵吗
  • 电子税务局里的利润表,本月金额是填累计数吗
  • 留存收益账务处理视频
  • mac host is down
  • win10专业版激活密钥永久2023
  • 车间购买办公用品
  • linux-4.4
  • bios详细解释及作用
  • 发票作废之后税钱怎么退回了
  • 建筑业成本率是多少
  • Win10 20H2/2004 Beta Build 19042.789累积更新补丁KB4598291正式推送
  • 营改增之前的业务怎么缴税
  • 以太网默认网关不可用
  • 往来账款如何做账务处理
  • 记账凭证按其用途
  • 单位专项资金使用管理规
  • 管理费用属于产品成本项目的费用吗
  • 一般纳税人简易征收3%可以开专票吗
  • 汽车销售行业的税负率是多少
  • php filesize
  • stable Diffusion安装教程
  • 已抄报未反写什么意思
  • php preg_quote
  • yii2框架和fastadmin建商城网站哪个好用
  • wordpress文章保存在哪里
  • 行政事业性收费是什么意思
  • 先款还是先票
  • 2022最新款带采集功能抖音壁纸小程序源码
  • 出版社出版带有编码吗
  • 注册子公司需要的材料
  • 哪几种进项税额允许抵扣
  • mysql workbench简介
  • 支付员工的餐费怎么入账
  • 哪些属于发票
  • 母公司子公司下面的子公司怎么称呼
  • 服务器配置mysql
  • 在建工程待摊支出是什么意思
  • 为什么收到要发1
  • 债务转为股份的协议
  • 投资收益算在营业利润里面吗
  • 发票金额比实际付款多怎么做账
  • 房地产企业收到政府土地补偿款如何入账
  • 出口退税项目
  • 主营业务利润的会计分录
  • 工会赞助费
  • 长期股权投资成本法会计处理
  • 固定资产的核算包括
  • 提供加工劳务计入什么科目
  • 主营业务税金及附加借贷方向
  • 毛利率计算公式
  • mysql5.7.21安装
  • mysqlpid文件没有
  • centos 7安装教程
  • sql数据库还原方法
  • mysql数据库技术介绍
  • windowsserver2008密码规则
  • opengl update
  • 教你用十行node.js代码读取docx的文本
  • 安卓软件测试
  • 使用粗盐热敷十大危害
  • 四川省国家税务局电子税务局
  • 浙江网上税务局登录官网
  • 个人出租房屋如何计税?看这篇
  • 上海地铁和公交乘车码
  • 河南林州在哪三省交界处
  • 税控盘可以换成ukey吗
  • 小规模纳税人租赁收入增值税税率是多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设