標籤:style blog http color 使用 ar strong sp 檔案
解剖SQLSERVER 第七篇 OrcaMDF 特性概述(譯)
http://improve.dk/orcamdf-feature-recap/
時間過得真快,這已經過了大概四個月了自從我最初介紹我的寵物項目OrcaMDF。
自從項目開始到現在,OrcaMDF發生了很多變化,功能更強了,因此我想提供一個概述對目前OrcaMDF的功能的概述以及我對OrcaMDF未來的計劃
頁面類型
OrcaMDF 當前支援以下頁面的資料完整解析:Data, Index, TextMix(lob), TextTree(lob), GAM, SGAM, IAM, and PFS
也支援最小限度的解析bootpage,bootpage是使用者表中繼資料尋找的啟動點
剩下的是排序,檔案頭,DCM,BCM頁面,DCM和BCM頁面跟IAM, GAM and SGAM 頁面使用相同的位元影像格式,解析他們也很簡單。
檔案頭有一些tricky 並且一些DBCC PAGE解析。排序頁面跟其他頁面很少有關係,他們只用於在SQLSERVER運行時候臨時使用並且不會
存放在你的MDF檔案裡面
關於排序頁:http://tech.it168.com/a2010/0916/1104/000001104500_1.shtml
資料類型
我已經添加了儘可能多的資料類型到OrcaMDF裡面,稍後我會添加對LOB類型的解析支援,對XML不支援
當前支援的資料類型包括
bigint
binary
bit
char
datetime
decimal
image
int
nchar
ntext
nvarchar(x)
nvarchar(MAX)
smallint
sysname
text
tinyint
varbinary(x)
varbinary(MAX)
varchar(x)
varchar(MAX)
在以後添加新的資料類型相對來說比較容易,只需要分析儲存格式並且實現ISqlType 介面
表和索引結構
使用DataScanner 類,OrcaMDF 能掃描叢集索引表和堆表。使用IndexScanner 類能掃描非叢集索引,無論他們是建立在堆表上還是在叢集索引表上
中繼資料
OrcaMDF 當前能暴露出來唯一已經公開暴露出來的中繼資料套件括一系列的表名,OrcaMDF 能解析索引,表,分區,配置單位,列並提供他們的名字
這讓你能掃描叢集索引表/堆表/索引。OrcaMDF 會自動解析對象的架構和搜尋IAM鏈表頭(堆)或者索引的root page
餘下的關注點
OrcaMDF 當前只支援單個資料檔案的資料庫,那就是沒有NDF檔案的資料庫。添加對NDF檔案支援是很簡單的,不過我的主要關注點是
對資料檔案裡核心資料結構的支援,所以,NDF檔案不會改變太大。對於損壞的檔案或者損壞檢測,OrcaMDF 假設MDF檔案是完好無損的。
有幾個地方是能檢測到資料庫損壞的,但是我把檢測資料庫損壞的功能延遲到直到我認為OrcaMDF 能正確解析資料庫的大部分功能的時候
OrcaMDF 這個項目從一開始到現在一直是深入研究SQLSERVER內部的一個很好的項目,因此,資料庫損壞檢測在現階段並不是很重要
儘管資料庫損壞檢測是我最終想要添加的一個功能
下一步計劃
我想擴充當前中繼資料解析的能力,特別關注公用的暴露出來的中繼資料。通過OrcaMDF能夠產生像SSMS左邊那樣的樹狀的資料庫/對象/列的圖形介面
以為會添加表名,索引名,架構名,鍵等。我也會研究一下資料頁面壓縮,先從行壓縮開始。壓縮格式的文檔有很多(相比起LOB結構),
壓縮不會帶來太多問題。
如果你有任何建議或特性你想看到的,請與我聯絡
許多人要求我介紹如何使用OrcaMDF並列出例子。我將會建立一個部落格文章系列通過代碼來展示如何使用OrcaMDF 提供的特性。
我還計劃建立一篇部落格來說明如何擷取原始碼和編譯原始碼,最後如何運行軟體
第七篇完
解剖SQLSERVER 第七篇 OrcaMDF 特性概述(譯)