0

0

解剖SQLSERVER 第七篇 OrcaMDF 特性概述(译)

php中文网

php中文网

发布时间:2016-06-07 15:19:38

|

1548人浏览过

|

来源于php中文网

原创

解剖SQLSERVER 第七篇 OrcaMDF 特性概述(译) http://improve.dk/orcamdf-feature-recap/ 时间过得真快,这已经过了大概四个月了自从我最初介绍我的宠物项目OrcaMDF。 自从项目开始到现在,OrcaMDF发生了很多变化,功能更强了,因此我想提供一个概述对目前O

解剖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

解剖SQLSERVER 第七篇  OrcaMDF 特性概述(译)

 

 

数据类型

我已经添加了尽可能多的数据类型到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 类能扫描非聚集索引,无论他们是建立在堆表上还是在聚集索引表上

 

元数据

Superflow Rewrite
Superflow Rewrite

AI辅助高效网站设计、协作、注释工具,迭代和发布网站的最快方式

下载

OrcaMDF 当前能暴露出来唯一已经公开暴露出来的元数据包括一系列的表名,OrcaMDF 能解析索引,表,分区,分配单元,列并提供他们的名字

这让你能扫描聚集索引表/堆表/索引。OrcaMDF 会自动解析对象的架构和搜索IAM链表头(堆)或者索引的root page

 

 

余下的关注点

OrcaMDF 当前只支持单个数据文件的数据库,那就是没有NDF文件的数据库。添加对NDF文件支持是很简单的,不过我的主要关注点是

对数据文件里核心数据结构的支持,所以,NDF文件不会改变太大。对于损坏的文件或者损坏检测,OrcaMDF 假设MDF文件是完好无损的。

有几个地方是能检测到数据库损坏的,但是我把检测数据库损坏的功能推迟到直到我认为OrcaMDF 能正确解析数据库的大部分功能的时候

OrcaMDF 这个项目从一开始到现在一直是深入研究SQLSERVER内部的一个很好的项目,因此,数据库损坏检测在现阶段并不是很重要

尽管数据库损坏检测是我最终想要添加的一个功能

 

 

下一步计划

我想扩展当前元数据解析的能力,特别关注公用的暴露出来的元数据。通过OrcaMDF能够生成像SSMS左边那样的树状的数据库/对象/列的图形界面

以为会添加表名,索引名,架构名,键等。我也会研究一下数据页面压缩,先从行压缩开始。压缩格式的文档有很多(相比起LOB结构),

压缩不会带来太多问题。

如果你有任何建议或特性你想看到的,请与我联系

许多人要求我介绍如何使用OrcaMDF并列出例子。我将会创建一个博客文章系列通过代码来展示如何使用OrcaMDF 提供的特性。

我还计划创建一篇博客来说明如何获取源代码和编译源代码,最后如何运行软件

 

第七篇完

相关专题

更多
ip地址修改教程大全
ip地址修改教程大全

本专题整合了ip地址修改教程大全,阅读下面的文章自行寻找合适的解决教程。

33

2025.12.26

压缩文件加密教程汇总
压缩文件加密教程汇总

本专题整合了压缩文件加密教程,阅读专题下面的文章了解更多详细教程。

18

2025.12.26

wifi无ip分配
wifi无ip分配

本专题整合了wifi无ip分配相关教程,阅读专题下面的文章了解更多详细教程。

46

2025.12.26

漫蛙漫画入口网址
漫蛙漫画入口网址

本专题整合了漫蛙入口网址大全,阅读下面的文章领取更多入口。

91

2025.12.26

b站看视频入口合集
b站看视频入口合集

本专题整合了b站哔哩哔哩相关入口合集,阅读下面的文章查看更多入口。

283

2025.12.26

俄罗斯搜索引擎yandex入口汇总
俄罗斯搜索引擎yandex入口汇总

本专题整合了俄罗斯搜索引擎yandex相关入口合集,阅读下面的文章查看更多入口。

370

2025.12.26

虚拟号码教程汇总
虚拟号码教程汇总

本专题整合了虚拟号码接收验证码相关教程,阅读下面的文章了解更多详细操作。

35

2025.12.25

错误代码dns_probe_possible
错误代码dns_probe_possible

本专题整合了电脑无法打开网页显示错误代码dns_probe_possible解决方法,阅读专题下面的文章了解更多处理方案。

25

2025.12.25

网页undefined啥意思
网页undefined啥意思

本专题整合了undefined相关内容,阅读下面的文章了解更多详细内容。后续继续更新。

72

2025.12.25

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Go 教程
Go 教程

共32课时 | 3万人学习

麻省理工大佬Python课程
麻省理工大佬Python课程

共34课时 | 4.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号