位置: 编程技术 - 正文

SQL Server误区30日谈 第2天 DBCC CHECKDB会导致阻塞(sql server错误和使用情况报告)

发布时间:2024-02-26

误区 #2: DBCC CHECKDB会引起阻塞,因为这个命令默认会加锁

这是错误的!

在SQL Server 7.0以及之前的版本中,DBCC CHECKDB命令的本质是C语言实现的一个不断嵌套循环的代码并对表加表锁(循环嵌套算法时间复杂度是嵌套次数的N次方,作为程序员的你懂得),这种方式并不和谐,并且…..

在SQL Server 时代,一个叫Steve Lindell的哥们(现在仍然在SQL Server Team)使用分析事务日志的方法来检查数据库的一致性的方式重写了DBCC CHECKDB命令。DBCC CHECKDB会阻止截断日志。当将日志从头读到尾时,在事务日志内部进行了某种Recovery操作,这实际上是另一种全新的实现Recovery的代码,但是仅限于CHECKDB命令内部。但这种方式依然存在问题,比如这个命令存在检查失败的可能性,如果检查失败,你还需要重新执行它看是否还会出现同样的错误。并且有时候,这个命令还会使用SCH_S锁,索然这个锁仅仅阻塞表扫描和表构架的改变,但通过日志来检查一致性的代码也并不是尽善尽美,并且…..

在SQL Server 时代,一个叫Paul Randal的家伙(译者:也就是本文作者)再次重写了DBCC CHECKDB命令。这次使用数据库快照来检查一致性(因为数据库快照会提供在数据库某一特定时间点的一致性视图),因此不再有事务日志的分析代码,不再有任何的锁--因为访问数据库快照不需要对原数据库加任何的锁,缓冲池会自动处理可能出现的资源争用。

如果想了解更多内幕消息,你可以阅读下面的文章:

CHECKDB From Every Angle: Complete description of all CHECKDB stages

CHECKDB From Every Angle: Why would CHECKDB run out of space?

Database snapshots - when things go wrong

Issues around DBCC CHECKDB and the use of hidden database snapshots

Do transactions rollback when DBCC CHECKDB runs?

Diskeeper Intelliwrite corruption bug

现在,在任何SQL Server版本中,如果你依然使用WITH TABLOCK提示,那将会产生表锁来保证事务的一致性。但我不推荐这种方式。因为这种方式不仅需要更长的时间,还将会尝试对数据库加排他锁,但已经活动在数据库的连接有可能导致这种方式失败。

在SQL Server 中,这个命令阻止事务日志截断将会导致日志不正常增长的相关问题,但对于SQL Server 来说,这个命令就会导致快照相关的问题(具体请看上面的链接)。

但是在默认情况下,自从SQL SERVER 之后,DBCC CHECKDB不会再产生阻塞。

推荐整理分享SQL Server误区30日谈 第2天 DBCC CHECKDB会导致阻塞(sql server错误和使用情况报告),希望有所帮助,仅作参考,欢迎阅读内容。

SQL Server误区30日谈 第2天 DBCC CHECKDB会导致阻塞(sql server错误和使用情况报告)

文章相关热门搜索词:sql server233错误,sql server233错误,sql server233错误,sql server错误和使用情况报告,sql server 1222解决,sql server233错误,sql语句错误提示,sql server 错误,内容如对您有帮助,希望把文章链接给更多的朋友!

SQL Server误区日谈 第3天 即时文件初始化特性可以在SQL Server中开启和关闭 本系列文章是我在sqlskill.com的PAUL的博客看到的,很多误区都比较具有典型性和代表性,原文来自T-SQLTuesday#:Misconceptionsabout....EVERYTHING!!,经过我们团队

SQL Server误区日谈 第4天 DDL触发器就是INSTEAD OF触发器 误区#4:DDL触发器(SQLServer之后被引入)就是INSTEADOF触发器这是错误的DDL触发器的实现原理其实就是一个AFTER触发器。这个意思是先发生DDL操作,然后触

浅谈SQL Server 对于内存的管理[图文] 理解SQLServer对于内存的管理是对于SQLServer问题处理和性能调优的基本,本篇文章讲述SQLServer对于内存管理的内存原理。二级存储(secondarystorage)对于计算

标签: sql server错误和使用情况报告

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

上一篇:SQL Server误区30日谈 第1天 正在运行的事务在服务器故障转移后继续执行(sql server错误和使用情况报告)

下一篇:SQL Server误区30日谈 第3天 即时文件初始化特性可以在SQL Server中开启和关闭(sql语句错误提示)

  • 税金返还需要交税吗
  • 什么情况下不能做近视激光手术
  • 发票连续作废两次
  • 企业所得税纳税调增调减怎么确定
  • 个人房屋租金收入怎么交税
  • 固定资产报废的账务处理例题
  • 收到社保中心的生育经贴怎么做账
  • 施工企业仪器设备入什么会计科目核算?
  • 如何开具红字增值发票
  • 当月认证的发票可以当月抵扣吗
  • 劳务费开发票还要代扣代缴吗?
  • 实收资本印花税是一年一交吗
  • 付款凭证和记账凭证一样吗
  • 建筑行业暂估成本的会计分录怎么写
  • 个体工商户出售住房增值税
  • 公司支付给个人的货款怎么入账
  • 资产评估入账的评估报告
  • 企业有哪些资金结构
  • 事业单位工程岗位职责
  • 惠普台式电脑配置及价格
  • 在win7中,当前窗口的数量是多少个
  • android 设置按钮颜色
  • 增发股票会计科目
  • w10怎么找蓝牙
  • 网页提示摄像头未授权
  • w11系统黑屏
  • 在php中,字符串有哪些表示形式
  • 应收账款需要计提坏账准备吗
  • 劳动法律法规包含哪些
  • 电脑上fci是什么文件
  • 个人销售住房是否免征土地增值税
  • 企业收到的保险理赔款会计分录
  • 银行进账单和现金缴款单的区别
  • php异步请求方式
  • AI:DeepSpeed Chat(一款帮用户训练自己模型的工具且简单/低成本/快 RLHF 训练类ChatGPT高质量大模型)的简介、安装、使用方法之详细攻略
  • 特斯拉适用于什么车型
  • 员工离职补偿怎么入账
  • 总公司如何成立子公司
  • 纳税人填写纳税申报表
  • 营业收入和利润总额的关系
  • Python数学建模三剑客
  • 织梦网站老是被挂马
  • python smtpd
  • 破产审计需要几年的账
  • 职工福利费开支超过准予扣除标准的金额为1.2
  • 小规模企业没有进项票能开发票吗
  • 企业回购本公司股票会导致所有者权益增加
  • 增值税专用发票丢了怎么补救
  • sql2008收缩日志文件
  • 下列行为免征增值税的有
  • 开了的发票应该如何在丁字帐里记录?
  • 教育培训行业人员
  • 增值税预缴的计税依据
  • 个税专项附加继续教育如何扣除?
  • 行政事业单位拨款请示在前还是发票在前
  • 固定资产净残值率
  • 湖南残保金优惠政策
  • 产品生产完工入库
  • 什么时候用以前年度损益调整科目什么时候用所得税科目
  • 购电脑怎么入账
  • 购买办公软件的进项发票可以抵扣吗
  • 二类银行卡转账能收多少钱
  • 清产核资评估报告
  • linux共享
  • linux scp命令的用法详解
  • centos7 login账号
  • window 查看端口
  • linux重启命令网卡
  • win8.1system磁盘占用率高
  • ext.grid.panel
  • cmd命令基础
  • three.js 教程
  • pm2启动nodejs
  • Linux bash Shell中的变量类型详解
  • jquery dom对象
  • js如何获取当前页面的url
  • js正则匹配数字
  • android xmlns
  • python函数详解
  • 国家税务总局关于进一步优化营改增纳税服务工作的通知
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号