Anatomy of SQL Server seventh Orcamdf features overview (translated)
http://improve.dk/orcamdf-feature-recap/
It's been about four months since I first introduced my pet project Orcamdf.
Since the start of the project, Orcamdf has changed a lot and is more functional, so I would like to provide an overview of the current orcamdf features and my plans for the future of Orcamdf
Page type
Orcamdf currently supports the complete parsing of data on the following pages: The database, Index, Textmix (LOB), Texttree (LOB), GAM, SGAM, IAM, and PFS
also supports minimal parsing bootpage,bootpage is the starting point for user table metadata lookups
The rest is sort, file header, dcm,bcm page, DCM and BCM pages with IAM, GAM and SGAM pages using the same bitmap format, parsing them is also very simple.
The file header has some tricky and some DBCC page parsing. Sort pages are rarely related to other pages, they are used only temporarily when SQL Server is running and do not
Store in your MDF file
About the sort page: http://tech.it168.com/a2010/0916/1104/000001104500_1.shtml
Data type
I have added as many data types as I can to orcamdf, and later I will add parsing support for LOB types, which is not supported for XML
The currently supported data types include
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)
It's relatively easy to add new data types later, just analyze the storage format and implement the Isqltype interface
Table and Index structure
Using the Datascanner class, Orcamdf can scan the clustered index table and the heap table. Use the Indexscanner class to scan nonclustered indexes, whether they are built on a heap table or on a clustered index table
Meta data
Orcamdf currently exposes the only publicly exposed metadata includes a list of table names, Orcamdf can parse indexes, tables, partitions, allocation units, columns and provide their names
This allows you to scan the clustered index Table/heap table/index. Orcamdf automatically parses the object's schema and searches the IAM link header (heap) or the root page of the index
Remaining points of concern
Orcamdf currently only supports a single data file database, that is, there is no NDF file database. Adding support for NDF files is simple, but my main concern is
Support for the core data structure in the file, so the NDF file does not change too much. For damaged files or damage detection, Orcamdf assumes that the MDF file is intact.
There are several places where database corruption can be detected, but I defer the ability to detect database corruption until I think Orcamdf can correctly parse most of the database's functionality.
Orcamdf This project has been a good project in-depth research into SQL Server from the beginning to the present, so database corruption detection is not very important at this stage.
Although database corruption detection is a feature that I eventually want to add
Next plan
I want to extend the capabilities of the current metadata parsing, paying particular attention to the public exposed metadata. The graphical interface of the database/object/column that can generate a tree like the left of SSMs by Orcamdf
The table name, index name, schema name, key, and so on will be added. I'll also look at data page compression, starting with row compression. There are many documents in the compressed format (compared to the LOB structure),
Compression does not cause too many problems.
If you have any suggestions or features you would like to see, please contact me
Many people asked me to describe how to use orcamdf and to list examples. I'll create a blog post series that shows how to use the features provided by Orcamdf in code.
I also plan to create a blog to explain how to get the source code and compile the source code, and finally how to run the software
End of the seventh chapter
Anatomy of SQL Server seventh Orcamdf features overview (translated)