位置: 编程技术 - 正文

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

编辑:rootadmin

误区 #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语句错误提示)

  • 纳税人未抄报税是什么意思
  • 用于非增值税应税项目、免征增值税项目
  • 购买税控盘分录怎么做
  • 给中间人回扣犯罪吗
  • 企业其他综合收益减少应该怎么处理
  • 已纳消费税税款允许扣除的是
  • 小规模纳税人发票图片
  • 银行汇票转给第三方怎么操作
  • 待认证转进项税额转出会计分录
  • 向税务局缴纳工伤保险费有发票吗
  • 民间非营利组织会计报表
  • 以前年度少计提折旧怎么做分录
  • 劳务派遣差额部分可以开专票吗
  • 请问高人们旧房子要装修应怎样装
  • 在建工程完工,并当日签订出租协议的会计分录
  • 勾选认证的发票怎么确认签名
  • 增值税即征即退会计处理
  • 有限责任公司向合伙企业投资
  • 建筑行业成本预算和施工方案哪个更有含金量
  • 自建商品房转为自用增值税
  • 商贸企业零部件出口退税政策
  • 车辆的代驾费应该怎么收
  • 财政收回额度怎么记账
  • mac双系统切换键
  • 应收账款与主营业务收入的比率
  • 邮件远程控制
  • 企业开发产品转为自用的,不得在税前扣除折旧费用
  • 消费税不可抵扣已纳税款
  • 变更营业执照中心怎么改
  • win10开机强制进入安全模式重置
  • 支付投资款怎么做账
  • 外商投资企业有哪些出资方式
  • 预测编码方式
  • EarthLiveSharp中cloudinary的CDN图片缓存自动清理python脚本
  • 基金公司做销售有前途吗
  • 红字专用发票开具的规定
  • php十进制转二进制算法
  • 税控盘用来干嘛的
  • torch.nn.function
  • 测试工程师有前途么
  • 企业季度预缴土地出让金
  • 小汽车的消费税税率按照气缸容量实行差别
  • 总公司与分公司合作协议范本
  • mysql怎么处理特殊字符数据
  • 支出金额是什么
  • 又是客户又是供应商的舞弊行为
  • 个体户开公账户每个月要申报吗
  • 中标的工程交易怎么处理
  • 管理费用科目包括
  • 资产处置开票填什么项目
  • 企业设立账簿
  • 研发支出资本化计入什么科目
  • 应交税费已交税金是什么意思
  • 专利年费可以计入研发费用加计扣除吗
  • 兼职员工对公司的好处
  • 已经确认收入
  • 实收资本未实缴是否罚款
  • 购买公司分录怎么写
  • 综合所得的个人所得税有哪些筹划技巧
  • 先开票后发货是什么意思
  • 内账价税分离如何做账
  • sqlserver2005网络配置里没有东西
  • Linux下mysql 5.6.17 安装图文教程
  • windows怎么加速
  • ubuntu复制文件到当前文件夹
  • centos怎么连接远程服务器
  • win8屏幕键盘快捷键
  • linux ssh默认端口
  • bootstrap基础教程
  • python用while循环求π的值
  • 批处理转义字符如何
  • node.js中http模块和url模块的简单介绍
  • nodejs重启
  • jquery datatable服务端分页
  • android推送权限
  • jquery插件开发方法
  • Python的collections模块中namedtuple结构使用示例
  • 纳税工会经费申请怎么写
  • 大连市国家税务局官网登录
  • 成都租房备案凭证怎么办理
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设