Tell me more ×
Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. It's 100% free, no registration required.

I am using SQL Server version: Microsoft SQL Server 2012 - 11.0.2100.60 (X64).

I created a single table containing one and only one integer-valued column. I then added one and only one row to the table.

CREATE DATABASE SQLServerInternals;
GO

USE SQLServerInternals;
GO

CREATE TABLE page_header
(
    c1 INT IDENTITY NOT NULL
) ON [PRIMARY];
GO

INSERT INTO page_header DEFAULT VALUES;
GO 

DBCC IND(SQLServerInternals,page_header,1);
GO
DBCC TRACEON(3604);
GO
DBCC PAGE (SQLServerInternals,1,231,2);
GO

Here is the output from DBCC PAGE.

Does anyone know what the DB Frag ID = 1 means and whether it is the value 0x0100 that I see in bytes 64-65? I assume that the value is at most a SMALLINT type. I assume that the remaining bytes are for "future use".

enter image description here

share|improve this question
I've not stumbled upon "DB Frag ID" before, it would seem that's new to 2012. However, looking at the header for 2008R2 and earlier, only bytes 0-63 are in use: github.com/improvedk/OrcaMDF/blob/master/src/OrcaMDF.Core/… Thus, if they added a new property, it would make sense for it to be in bytes 64+ – Mark S. Rasmussen Jan 15 at 23:56
Altering the 65th byte on the page in a test database doesn't seem to affect anything reported by DBCC PAGE. It still says DB Frag ID = 1 regardless of what I set it to – Martin Smith Jan 16 at 0:00
@MarkS.Rasmussen I too have never seen "DB Frag ID" before. I assume it has nothing to do with index fragmentation. Maybe database fragment...? I have no clue. – ooutwire Jan 16 at 2:47

Know someone who can answer? Share a link to this question via email, Google+, Twitter, or Facebook.

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.