位置: 编程技术 - 正文

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

  • 销售商品的差价怎么算
  • 公司名下的车怎么报废
  • 收到财政局拨款填到现金流量表哪一项
  • 税前利润包含营业税吗
  • 已认证未抵扣的进项怎么填写
  • 其他应付款为负数
  • 应付账款对方不催款怎么办
  • 金税盘地区编号怎么查
  • 长期股权投资成本法转权益法追溯调整
  • 预告登记与备案的区别
  • 工程节点奖金
  • 减免税款的会计处理
  • 融资贷款保险费计算公式
  • 医院减免医药费后还可以报保险吗
  • 公司走税,对公司有影响吗
  • 缴纳印花税税会计分录怎么做
  • 金税盘发行后什么时候可以用
  • 白酒消费税最低计税价格
  • 会计分录如何试算出来的
  • 独生子女补贴怎么查询
  • 应付工资和实付工资的差额叫什么
  • 主营业务成本算损益类科目吗
  • 现金比率计算公式含义
  • 预提电费及电费发票到账的会计分录
  • 企业存款利息收入要交哪些税
  • adv举例
  • 广告费与业务宣传费范围
  • 厂房修缮
  • 穿墙路由器怎么选择
  • 会计人员报销差额是多少
  • 辅助生产成本的分配
  • php静态方法调用
  • 全盘会计和总账会计一样吗
  • php获取开始与结束的函数
  • 生日快乐html5代码
  • 应收贷方有余额怎么调整
  • 购入固定资产应该怎么做账
  • 金蝶软件凭证修改怎么做
  • pyqt 菜单
  • 小规模开劳务费可以开多少
  • MyBatis MapperProvider MessageFormat拼接批量SQL语句执行报错的原因分析及解决办法
  • python如何对齐输出
  • 经营许可证需要多久时间
  • sql server删除表命令
  • 文化服务要交文化部门吗
  • 营改增后租金收入交什么税
  • 收电商费会判刑吗
  • 办公楼的装修费用如何进行财税处理
  • 支付的员工餐费怎么记账
  • 怎样可以冲销企业微信
  • 企业买车购置税可以抵增值税吗
  • 收到投资款如何做税务登记
  • 简易征收能抵扣进项税吗
  • 公司场地租赁交什么税
  • 计算机二级考试时间2024
  • win8如何调整电脑屏幕亮度
  • windows 开始
  • 通过修改注册表来修改chrome配置
  • win10系统无法打开这个应用
  • centos部署tomcat配置
  • diskgenius_winpe文件夹能删吗
  • cpqdfwag.exe是什么进程 能结束吗 cpqdfwag进程查询
  • win7 64位旗舰版电脑如何取消网页自动保存密码?win7取消自动保存网页密码的方法
  • linux常用命令grep
  • 不需要远程传输的文件
  • 基于jQuery的设计与实现
  • cocos2dx4.0教程
  • 批处理命令修改ip
  • cocos2dx-js
  • js单线程多线程
  • Unity同时接入ShareSdk和微派支付sdk(二)
  • 实用js代码
  • jquery实现原理
  • android获取系统弹窗,自动点击
  • asx文件的作用
  • 出口发票与报关单名称不一致影响退税吗
  • 河南省地方税务局公告2017年第4号
  • 郑州房产契税缴纳
  • 加强党的作风建设是目前全党的中心
  • 税务违法怎么处理
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设