误区30日谈16-20
--17 a)頁校驗和(Page CheckSum)在從 SQL Server 2000或升級上來之后自動開啟
--答案: 錯誤
--解釋:SQL SERVER 2005 后的數據庫默認使用 CHECKSUM選項, 但是從SQL SERVER 2000升級上來的數據庫需要手動修改
--17 b)頁校驗和可以糾正錯誤
--答案: 錯誤
--解釋:CHECKSUM 在讀取時使用 CHECKSUM算法求出HASH 值再與頁面中存儲的 HASH值對比, 如果不一致 ,則說明該頁有問題,但不能支持問題在哪或則修復問題
--17 c)當開啟頁校驗和之后會開始為數據庫中的每一頁加上頁校驗和。
--答案: 錯誤
--解釋: 啟用校驗和會立即生效 ,但是不會立即對數據庫中每一頁進行計算 ,只有在重建索引或修改數據頁時 ,才會計算校驗和并將之存放到數據頁頭一起寫入磁盤
--17 d)對頁進行讀取就可以將校驗和加到頁中
--答案: 錯誤
--解釋: 只有在頁修改后寫入磁盤時 ,才會計算校驗和加到頁中
--17 e)當數據庫的頁驗證模式由 torn-page detection方式改為頁校驗和方式之后,所有的 torn-page detection信息都會丟失
--答案: 錯誤
--解釋: 只有在數據頁發生修改時 ,才會丟失該頁torn-page detection信息并使用校驗和
--17 f)頁校驗和可以在發生錯誤時馬上檢測到
--答案: 錯誤
--解釋: 只有數據頁再次被讀取后 ,才會使用校驗和檢查數據頁 ,因此發生錯誤時不會被馬上檢查到
--BTW,如果發生錯誤時就能檢測到 ,就無效使用校驗和在讀取時檢測了
--http://www.cnblogs.com/CareySon/archive/2012/12/25/2831877.html
--18 a)FileStream數據可以在遠程存儲
--??? 不能,由于 FileStream數據容器( 指的是存放 FileStream文件的NTFS 文件夾,杜撰出來的術語 )必須像數據文件或日志文件那樣符合本地存儲策略也就是說,這個數據容器必須放在對于運行 SQL Server的Windows Server 是本地存儲(譯者注:也就是在‘計算機’里能看到的存儲, DAC當然是了,其實SAN這類不直接連接服務器的也算是)訪問 FileStream數據只要客戶端連接到了 SQL Server服務器并獲取響應的事務上下文后,就可以通過 UNC路徑進行訪問了。
--18 b)FileStream的數據容器可以嵌套
--??? 不能,對于同一個數據庫的兩個不同的 FileStream容器可能在同一個目錄下,但是卻不能嵌套。而對于不同數據庫的 FileStream容器無法在同一個目錄下。我的一篇博文有一段代碼能說明這一點 :Misconceptions around FILESTREAM storage。
--18 c)對于FileStream 的更新可以部分更新
--??? 對于任何FileStream的更新都會導致創建一個全新的 FileStream文件, 這個操作會被日志原原本本的記錄下來。這也就是為什么 FileStream不能被用于數據庫鏡像。這么多數據如果用于鏡像的話那后果簡直不可想象,只能希望未來的 SQL Server版本可以修改這種機制以允許部分更新。
--18 d)FileStream會在不需要的時候立刻被垃圾回收
--??? 錯誤。FileStream數據會在不再需要并且到了下一個 Checkpoint的時候進行垃圾回收。這點并不是那么直接以至于很多人對 FileStream的回收機制存在誤區。
--18 f)FileStream存放的目錄以及文件名是隨機取得
--??? 其實不然, FileStream的文件名其實代表的是創建其操作對應 LSN號。表和列的GUID目錄名是可以在系統表中獲取到。
--http://www.cnblogs.com/CareySon/archive/2012/12/25/2831879.html
--誤區#19:Truncate 表的操作不會被記錄到日志
--答案: 錯誤
--解釋: 所有對數據庫修改的操作都會被記錄到日志 ,由于TRUNCATE TABLE 的操作方式與 DELETE數據的的操作方式不一樣 ,可以快速刪除數據并且只寫入少量的日志 ,但不能說不寫日志
--擴展:TURNCATE TABLE 操作仍可以被事務提交和回滾 ,需要在日志還原時被REDO和 UNDO,因此TRUNCATE TABLE 也需要寫日志
--TURNCATE TABLE是將組成表的數據頁釋放,將組成表的相關頁釋放的操作交給一個后臺的線程進行隊列處理的過程被稱為 deferred-drop。使用后臺線程處理deferred-drop的好處是這個操作不會使得其所在的事務需要執行很長時間,因此也就不需要大量的鎖。
--http://www.cnblogs.com/CareySon/archive/2012/12/25/2831880.html
--誤區#20: 在破壞日志備份鏈之后,需要一個完整備份來重新開始日志鏈
--答案: 錯誤
--解釋: 除了完整備份能重啟日志鏈外 ,還可以使用差異備份來重啟日志鏈 (差異備份的跨度跨國日志鏈斷開的間隙 )
--http://www.cnblogs.com/CareySon/archive/2013/01/16/2862280.html
轉載于:https://www.cnblogs.com/TeyGao/p/3519023.html
總結
以上是生活随笔為你收集整理的误区30日谈16-20的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 程序员藏经阁 Linux兵书
- 下一篇: 匿名内部类的使用总结