http://imPRove.dk/orcamdf-feature-recap/
時(shí)間過(guò)得真快,這已經(jīng)過(guò)了大概四個(gè)月了自從我最初介紹我的寵物項(xiàng)目OrcaMDF。
自從項(xiàng)目開(kāi)始到現(xiàn)在,OrcaMDF發(fā)生了很多變化,功能更強(qiáng)了,因此我想提供一個(gè)概述對(duì)目前OrcaMDF的功能的概述以及我對(duì)OrcaMDF未來(lái)的計(jì)劃
頁(yè)面類型
OrcaMDF 當(dāng)前支持以下頁(yè)面的數(shù)據(jù)完整解析:Data, Index, TextMix(lob), TextTree(lob), GAM, SGAM, IAM, and PFS
也支持最小限度的解析bootpage,bootpage是用戶表元數(shù)據(jù)查找的啟動(dòng)點(diǎn)
剩下的是排序,文件頭,DCM,BCM頁(yè)面,DCM和BCM頁(yè)面跟IAM, GAM and SGAM 頁(yè)面使用相同的位圖格式,解析他們也很簡(jiǎn)單。
文件頭有一些tricky 并且一些DBCC PAGE解析。排序頁(yè)面跟其他頁(yè)面很少有關(guān)系,他們只用于在SQLSERVER運(yùn)行時(shí)候臨時(shí)使用并且不會(huì)
存放在你的MDF文件里面
關(guān)于排序頁(yè):http://tech.it168.com/a2010/0916/1104/000001104500_1.shtml
數(shù)據(jù)類型
我已經(jīng)添加了盡可能多的數(shù)據(jù)類型到OrcaMDF里面,稍后我會(huì)添加對(duì)LOB類型的解析支持,對(duì)xml不支持
當(dāng)前支持的數(shù)據(jù)類型包括
bigintbinarybitchardatetimedecimalimageintncharntextnvarchar(x)nvarchar(MAX)smallintsysnametexttinyintvarbinary(x)varbinary(MAX)varchar(x)varchar(MAX)
在以后添加新的數(shù)據(jù)類型相對(duì)來(lái)說(shuō)比較容易,只需要分析存儲(chǔ)格式并且實(shí)現(xiàn)ISqlType 接口
表和索引結(jié)構(gòu)
使用DataScanner 類,OrcaMDF 能掃描聚集索引表和堆表。使用IndexScanner 類能掃描非聚集索引,無(wú)論他們是建立在堆表上還是在聚集索引表上
元數(shù)據(jù)
OrcaMDF 當(dāng)前能暴露出來(lái)唯一已經(jīng)公開(kāi)暴露出來(lái)的元數(shù)據(jù)包括一系列的表名,OrcaMDF 能解析索引,表,分區(qū),分配單元,列并提供他們的名字
這讓你能掃描聚集索引表/堆表/索引。OrcaMDF 會(huì)自動(dòng)解析對(duì)象的架構(gòu)和搜索IAM鏈表頭(堆)或者索引的root page
余下的關(guān)注點(diǎn)
OrcaMDF 當(dāng)前只支持單個(gè)數(shù)據(jù)文件的數(shù)據(jù)庫(kù),那就是沒(méi)有NDF文件的數(shù)據(jù)庫(kù)。添加對(duì)NDF文件支持是很簡(jiǎn)單的,不過(guò)我的主要關(guān)注點(diǎn)是
對(duì)數(shù)據(jù)文件里核心數(shù)據(jù)結(jié)構(gòu)的支持,所以,NDF文件不會(huì)改變太大。對(duì)于損壞的文件或者損壞檢測(cè),OrcaMDF 假設(shè)MDF文件是完好無(wú)損的。
有幾個(gè)地方是能檢測(cè)到數(shù)據(jù)庫(kù)損壞的,但是我把檢測(cè)數(shù)據(jù)庫(kù)損壞的功能推遲到直到我認(rèn)為OrcaMDF 能正確解析數(shù)據(jù)庫(kù)的大部分功能的時(shí)候
OrcaMDF 這個(gè)項(xiàng)目從一開(kāi)始到現(xiàn)在一直是深入研究SQLSERVER內(nèi)部的一個(gè)很好的項(xiàng)目,因此,數(shù)據(jù)庫(kù)損壞檢測(cè)在現(xiàn)階段并不是很重要
盡管數(shù)據(jù)庫(kù)損壞檢測(cè)是我最終想要添加的一個(gè)功能
下一步計(jì)劃
我想擴(kuò)展當(dāng)前元數(shù)據(jù)解析的能力,特別關(guān)注公用的暴露出來(lái)的元數(shù)據(jù)。通過(guò)OrcaMDF能夠生成像SSMS左邊那樣的樹(shù)狀的數(shù)據(jù)庫(kù)/對(duì)象/列的圖形界面
以為會(huì)添加表名,索引名,架構(gòu)名,鍵等。我也會(huì)研究一下數(shù)據(jù)頁(yè)面壓縮,先從行壓縮開(kāi)始。壓縮格式的文檔有很多(相比起LOB結(jié)構(gòu)),
壓縮不會(huì)帶來(lái)太多問(wèn)題。
如果你有任何建議或特性你想看到的,請(qǐng)與我聯(lián)系
許多人要求我介紹如何使用OrcaMDF并列出例子。我將會(huì)創(chuàng)建一個(gè)博客文章系列通過(guò)代碼來(lái)展示如何使用OrcaMDF 提供的特性。
我還計(jì)劃創(chuàng)建一篇博客來(lái)說(shuō)明如何獲取源代碼和編譯源代碼,最后如何運(yùn)行軟件
第七篇完
新聞熱點(diǎn)
疑難解答
圖片精選