SQL Internals Viewer was developed to make navigation and investigation of internal structures easier. The application is a layer on top of DBCC PAGE. It presents the data in a way that is more manageable and easier to understand.
I found that when I first started looking into internals I ended up with a lot of information and I often got lost remembering which page was which, what the different values I had decoded were and where they came from!
In terms of navigation the application includes features such as graphical allocation maps, so you can see the GAM and SGAM allocations and then if you wish, overlay other pages such as the BCM and DCM. Using the application’s object browser you can select an index or table and overlay its IAM, root page, and first page. Clicking on a page in the allocation map will bring it up in the Page Viewer. From there you can easily navigate to other pages, for example jumping to the next or previous page defined in the header or follow a down-page pointer in an index record.
The Page Viewer displays the different elements of a page, the header, data, and offset table, and how they link together. Clicking on a slot in the offset table will show where a row is located in the data. The row on the hex-dump is colourised to show all of the different elements that make it up and an interpretation of the elements is displayed. Selecting data on the hex-dump will automatically display a conversion into any appropriate data types.
I’ve just release a new version that includes several new features. There is now a history function, so all pages viewed can be revisited. Also new is a feature to show all object IAMs together to give a full picture of database allocation. This would have practical uses in examining fragmentation. Finally a SQL editor has been added. After a query has run pages are automatically refreshed in the viewer so the changes can be examined. Along with the new version I’ve also update the website, www.sqlinternalsviewer.com
, to include more information.
Thanks for your interest,