SQL Server误区30日谈 第16天 数据的损坏和修复

误区 #16:多个关于数据的损坏和修复误区 坊间流传的很多版本都不正确 我已经听过很多关于数据修复可以做什么、不可以做什么、什么会导致数据损坏以及损坏是否可以自行消失。其实我已经针对这类问题写过多篇博文,因此本篇博文可以作为“流言终结者”来做一个总结,希望你能有收获。首先,对于数据修复可以做什么,不可以做什么,我已经写过一篇博文<A href="http://www.sqlskills.com/BLOGS/PAUL/post/Misconceptions-around-database-repair.aspx"&gt;Misconceptions around database repair涵盖了13个误区—从不用DBCC CHECKDB是否能修复错误(当然不能)到REPAIR_ALLOW_DATA_LOSS是否会引起数据丢失(这个名字的确很让人迷惑)。

其次,很多人抱怨说DBCC CHECKDB第一次运行时显示的错误在第二次运行时会自行消失。这很好解释:第一次由DBCC CHECKDB检测出的错误页已经不属于页分配集了,因此在第二次运行DBCC时就显示不出来了。我有一篇博文对此进行了详细的解释:

还有一个传的很广泛的流言是,运行时间长的操作(比如索引重建,大容量数据插入,数据库文件的收缩)会导致页损坏。其实不然,除非sql Server存在BUG的情况下(非常罕见)。没有任何T-sql语句会导致数据出错。我几年前写过一篇文章对此进行了详细的解释:sqlskills.com/BLOGS/PAUL/post/Search-Engine-QA-26-Myths-around-causing-corruption.aspx">Search Engine Q&A #26: Myths around causing corruption。

希望这篇文章对澄清这个概念有帮助

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 &#39;EastRiver&#39; 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...