位置: 编程技术 - 正文

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

  • 委托加工物资贷方
  • 个人接受现金捐赠的例子
  • 季末资产总额填错了要紧吗
  • 小企业会计准则会计科目表
  • 租赁合同印花税计算
  • 小规模纳税人费用票怎么做账
  • 买机票返钱
  • 一次性收到跨期租赁费会计分录
  • 计提利息怎么做账
  • 金税盘发票号码确认显示不全
  • 印花税计入税金及附加吗
  • 发票复印件怎么打印
  • 如何网上认证发票流程
  • 印花税已经缴纳了还需要申报
  • 供热企业免税收入标准
  • 缺联发票税务怎么处理
  • 网上申购发票怎么撤销
  • 提供物业管理服务的纳税人如何认定
  • 享受固定资产一次性扣除政策
  • 增值税税控系统专用设备
  • 新政府会计制度与旧制度区别
  • 实际缴纳的增值税比计提的多
  • 自己种的苗木开发票要什么手续
  • 资产总额小于所有者权益合计
  • 旅游门票报销怎么算
  • 外资企业注销需要商务局备案吗
  • 分期收款确认成功怎么办
  • 简易计税项目进项
  • 先扣社保再发工资可以吗
  • 结转基本生产成本
  • 净资产收益率公式推导
  • 以公允价值计量的投资性房地产
  • 查补以前年度房产税的账务处理
  • w7com端口设置
  • 不要运行指定的Windows应用程序怎么设置win10教程
  • 个体工商户应申报套餐无增值税吗
  • 笔记本电池的正负极区分
  • retrorun.exe - retrorun有什么用 是什么进程
  • 结转本月发生的费用
  • 委托开发软件如何入账
  • Vue3 + Vite + TypeScript + dataV 打造可视化大屏
  • 注销库存股的会计分录怎么理解
  • joomla组件
  • 如何知道是干皮还是油皮
  • 差旅费报销会议记录
  • ICLR2023《Crossformer: Transformer Utilizing Cross-Dimension Dependency for Multivariate Time Series》
  • 前端大佬都有谁
  • 提供加工劳务怎么开票
  • 代发工资的账务处理需要什么资料
  • python字典操作 遍历
  • 公账转给员工工资情况说明怎么写
  • 成品油红字发票开具后库存数量如何冲回?
  • 库存盘盈处理
  • sqlserver2008新建实例
  • sql server数据库怎么使用
  • 建筑工程机械费用标准
  • 金税四期对企业的好处
  • 增值是什么意思解释
  • 职工工资加计扣除
  • 特殊销售方式下销售额的确定
  • 现金冲账是什么意思
  • 施工企业项目部发生的管理人员工资应计入
  • 个体工商户记账报税教程
  • 出库单与入库单一样吗
  • 资产负债率怎么调整到50%以下
  • mysql序列函数
  • mysql数据库子查询
  • win8.1怎么关闭更新
  • windows8.1备份
  • 微软正式推出wind...
  • ipssvc.exe - ipssvc是什么进程 有什么作用
  • win10系统应用和功能中不能卸载
  • win10家庭版专业版教育版
  • cocos2dx怎么安装
  • angularjs1.5
  • 安卓开发问题
  • 有道词典下载安装
  • android课程心得体会
  • 出口退税范围的货物
  • 怎样在网上税务局个人发票能开10万以上?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设