文章出處

解剖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 提供的特性。

我還計劃創建一篇博客來說明如何獲取源代碼和編譯源代碼,最后如何運行軟件

 

第七篇完


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()