激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Sql Server - SQL Server誤區30日談 第2天 DBCC CHECKDB會導致阻塞

SQL Server誤區30日談 第2天 DBCC CHECKDB會導致阻塞

2019-12-27 14:01MSSQL教程網 Sql Server

在SQL Server 2000中,這個命令阻止事務日志截斷將會導致日志不正常增長的相關問題,但對于SQL Server 2005來說,這個命令就會導致快照相關的問題(具體請往下看)。

誤區 #2: DBCC CHECKDB會引起阻塞,因為這個命令默認會加鎖

這是錯誤的!

    在SQL Server 7.0以及之前的版本中,DBCC CHECKDB命令的本質是C語言實現的一個不斷嵌套循環的代碼并對表加表鎖(循環嵌套算法時間復雜度是嵌套次數的N次方,作為程序員的你懂得),這種方式并不和諧,并且…..

    在SQL Server 2000時代,一個叫Steve Lindell的哥們(現在仍然在SQL Server Team)使用分析事務日志的方法來檢查數據庫的一致性的方式重寫了DBCC CHECKDB命令。DBCC CHECKDB會阻止截斷日志。當將日志從頭讀到尾時,在事務日志內部進行了某種Recovery操作,這實際上是另一種全新的實現Recovery的代碼,但是僅限于CHECKDB命令內部。但這種方式依然存在問題,比如這個命令存在檢查失敗的可能性,如果檢查失敗,你還需要重新執行它看是否還會出現同樣的錯誤。并且有時候,這個命令還會使用SCH_S鎖,索然這個鎖僅僅阻塞表掃描和表構架的改變,但通過日志來檢查一致性的代碼也并不是盡善盡美,并且…..

    在SQL Server 2005時代,一個叫Paul Randal的家伙(譯者:也就是本文作者)再次重寫了DBCC CHECKDB命令。這次使用數據庫快照來檢查一致性(因為數據庫快照會提供在數據庫某一特定時間點的一致性視圖),因此不再有事務日志的分析代碼,不再有任何的鎖--因為訪問數據庫快照不需要對原數據庫加任何的鎖,緩沖池會自動處理可能出現的資源爭用。

   

    如果想了解更多內幕消息,你可以閱讀下面的文章:

    現在,在任何SQL Server版本中,如果你依然使用WITH TABLOCK提示,那將會產生表鎖來保證事務的一致性。但我不推薦這種方式。因為這種方式不僅需要更長的時間,還將會嘗試對數據庫加排他鎖,但已經活動在數據庫的連接有可能導致這種方式失敗。

    在SQL Server 2000中,這個命令阻止事務日志截斷將會導致日志不正常增長的相關問題,但對于SQL Server 2005來說,這個命令就會導致快照相關的問題(具體請看上面的鏈接)。

    但是在默認情況下,自從SQL SERVER 2000之后,DBCC CHECKDB不會再產生阻塞。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产高清自拍一区 | 中国女人内谢69xxxx天美 | 91精品一区二区综合在线 | 91一区二区三区久久久久国产乱 | 国产剧情在线观看一区二区 | 91精品久久久久久 | 久久网页 | 国产精品99久久久久久久 | 麻豆蜜桃在线观看 | 最新av在线播放 | 一级视频网站 | 涩涩伊人 | 草逼一区 | 欧美性生活区 | 久久精品黄 | 日韩激情一区 | 热re91久久精品国产99热 | 色啪综合| 黄色的视频免费观看 | 一级免费观看 | 黄色大片在线观看 | 国产精品一区二区三区99 | 姑娘第四集免费看视频 | 欧美在线观看19 | 国产色片 | 99seav| 性爱视频在线免费 | 欧美一级做一a做片性视频 黄色网址免费进入 | 免费91在线| 蜜桃网站免费 | 亚洲第一页夜 | 国产亚洲黑人性受xxxx精品 | 性欧美大战久久久久久久免费观看 | 国产乱淫av片免费观看 | 日韩一级视频 | 日韩av在线资源 | 日本一区二区免费在线播放 | 久久久一区二区三区视频 | 一级毛片免费高清 | 天天舔夜夜操 | 国产在线精品91 |