本人新書《SQL Server 2008資料庫技術內幕》前言--已出版
在使用SQL Server幾年、熟悉各種操作之後,就會對原理性的知識或多或少出現一些疑問,比如:
SQL Server如何進行空間分配?
索引為什麼能夠提高查詢速度?
一個SQL命令產生了了哪些重做資料?
重做日誌的LSN有什麼具體含義嗎?
經過查詢資料(如聯機叢書),可能會找到有關問題的一些資訊,如上述幾個問題可能會有下面的答案:SQL Server使用GAM與SGAM資料頁中的點陣圖資料管理空間分配;索引以B樹結構儲存索引資料,葉節點儲存的是索引鍵值及所在記錄的實體地址;SQL Server在重做日誌中記錄SQL命令修改的資料;LSN用於描述一個操作發生的先後順序。
過一段時間,你會對這些答案不滿意,因為這些說法只是原理性的解釋,並未看到實際的點陣圖資料、索引資料以及重做資料,而這裡對LSN的解釋,會讓人以為LSN就是對應操作發生的時間。很多時候,SQL Server聯機叢書及市面上的一些相關書籍就是採用這種方式解釋各種原理性的知識,並未給出檢視這些實際資料的方法。
所謂“眼見為實”,一個結論如果自己不能親自動手用實驗驗證,很難說對其徹底理解,它的正確性總是讓人不放心,當資料庫出現問題時,可能會束手無策。以筆者的經驗,一個原理如果自己親自驗證一下,有時確實會得到和流行說法,甚至和聯機叢書不一樣的結論。比如下面的結論:“若資料庫設定為大容量日誌恢復模式,則大容量操作會以最少方式記錄重做資料”,這是很多人很熟悉的一個結論,其實這個結論是不完整的。“insert into select”命令是一個典型的大容量操作,如果考查這個命令產生的重做資料,你會發現SQL Server並未使用最少日誌方式記錄其重做資料,若使其真的以最少日誌方式記錄重做資料,背後其實還有很多條件限制。
解決這種SQL Server底層原理性問題,找到可以自己動手驗證的方法,如果周圍沒有人可以請教,一般還有下面兩個途徑:參考Kalen Delaney的名著《SQL Server技術內幕》系列書籍或Ken Henderson的同類書籍,上網搜尋或到相關論壇提問。
但很多問題用上面方法都找不到令人滿意的答案,如重做記錄LSN的含義以及上面提到的大容量操作問題。在這種情況下,只有自己慢慢摸索,構造合適的實驗,才能得到滿意的答案。本書是作者十幾年來,在學習SQL Server過程中,解決所遇到的各種問題的一個整理,每個結論後面都有詳細的實驗過程來驗證它的正確性,從而讓讀者可以“眼見為實”,在寫作過程中,也糾正了自己的一些錯誤認識,本書非常適合那些和筆者一樣,困擾於底層原理,迷戀於研究、驗證底層原理的讀者。
本書所使用的SQL Server版本為:
Microsoft SQL Server 2008 (SP1) - 10.0.2714.0 (Intel X86)
Enterprise Edition on Windows NT 5.1
在寫作本書過程中,曹業勳(網名shuiniu)審閱了部分書稿,並就有關內容進行了深入討論,作者還就某些具體問題透過電子郵件請教了SQL Server開發團隊的Sangeetha Shekar、Sunil Agarwal,以及SQL Server儲存引擎開發團隊前負責人Paul S. Randal,特此致謝。
本書的寫作用了整一年的時間,相對本書的內容來說,還是很倉促的,有些內容還有待深入,有些實驗及結論可能考慮得不夠完整,甚至存在錯誤,歡迎讀者給予指正。
作者電子郵件:
,,
[@more@]
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/37724/viewspace-1056907/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL Server 2008技術內幕:T-SQL語言基礎 筆記SQLServer筆記
- 【Microsoft SQL Server 2008 技術內幕:T-SQL語言基礎】二、查詢篇ROSSQLServer
- SQL Server 2008連線區域網內的SQL Server 2000資料庫SQLServer資料庫
- SQL Server資料庫多資料檔案恢復技術SQLServer資料庫
- SQLServer 2008 技術內幕——T-SQL 查詢 筆記SQLServer筆記
- 本人新書出版: DB2 V9 權威指南新書DB2
- 《深入淺出Oracle》新書已經出版Oracle新書
- asp連線sql server 2008資料庫SQLServer資料庫
- SQL Server 2008 完整資料庫備份SQLServer資料庫
- SQL Server 2008資料庫引擎優化SQLServer資料庫優化
- SQL SERVER 2008 MASTER資料庫損壞SQLServerAST資料庫
- 移動sql server 2008 master 資料庫SQLServerAST資料庫
- 重建 SQL Server 2008 系統資料庫SQLServer資料庫
- SQL SERVER資料壓縮技術引領資料庫新潮流SQLServer資料庫
- SQL Server內建的HTAP技術SQLServer
- 「NGW」前端新技術賽場:Serverless SSR 技術內幕前端Server
- SQL Server 2008匯入、匯出資料庫SQLServer資料庫
- SQL Server 2008還原資料庫備份SQLServer資料庫
- SQL Server 2008 建立完整資料庫備份SQLServer資料庫
- SQL Server 2008資料庫級別的角色SQLServer資料庫
- 新書出版 |《資料庫程式設計師面試筆試真題庫》新書資料庫程式設計師面試筆試
- SQL Server資料庫內容替換方法SQLServer資料庫
- Mybatis技術內幕(2.4):資料來源模組MyBatis
- 新書出版 |《資料庫程式設計師面試筆試寶典》新書資料庫程式設計師面試筆試
- SQL Server 2008選擇資料庫恢復模式SQLServer資料庫模式
- SQL Server 2008資料庫恢復模式詳解SQLServer資料庫模式
- SQL Server 2008 R2新特性:主資料管理SQLServer
- WebKit技術內幕WebKit
- SQL Server 2008資料庫新增資料檔案後Standby庫的恢復SQLServer資料庫
- SQL Server 2008企業版中的資料庫加密SQLServer資料庫加密
- SQL Server 2008系統資料庫的恢復模式SQLServer資料庫模式
- SQL Server 2008還原差異資料庫備份SQLServer資料庫
- SQL Server 2008固定資料庫角色的許可權SQLServer資料庫
- SQL Server 2008中Analysis Services的新特性——深入SQL Server 2008SQLServer
- 七、資料庫技術的發展及新技術資料庫
- 檢視SQL Server資料庫修改了哪些內容SQLServer資料庫
- SQL Server資料庫安全SQLServer資料庫
- SQL Server 資料庫映象SQLServer資料庫