improve.dk
Just another mindless drone looking for the perfect stack
posts - 220, comments - 475

July 2011 Blog Posts


What is the size of the LOB pointer for (MAX) types like varchar, varbinary, etc?

Written on Monday, July 18, 2011 by Mark S. Rasmussen in SQL Server: Internals, SQL Server: SLOBs & LOBs

Learn about the different pointer types & sizes for (MAX) LOB data types - BLOB Inline Data, BLOB Inline Root and Textpointer.

No comments | Write first comment
 

The garbage null bitmap and why you can’t rely on it solely

Written on Saturday, July 16, 2011 by Mark S. Rasmussen in SQL Server: Internals, SQL Server: Null Bitmap

Don't trust bits in the null bitmap as they may contain garbage. Here's an example of how it may occur and why it doesn't matter.

No comments | Write first comment
 

The 8 byte record that was 9 bytes while making no sense

Written on Saturday, July 16, 2011 by Mark S. Rasmussen in SQL Server: Internals

Sometimes record structures aren't straightforward. Here's an example of a record that doesn't make any immediate sense when parsing it.

7 comments | Read comments
 

The null bitmap is *not* always present in data records

Written on Friday, July 15, 2011 by Mark S. Rasmussen in SQL Server: Internals, SQL Server: Null Bitmap, SQL Server: Sparse Columns

Contrary to popular belief, the null bitmap is not always present in data records. Here's an example of a data record that doesn't contain a null bitmap due to using sparse columns.

5 comments | Read comments
 

Sparse column storage – the sparse vector

Written on Friday, July 15, 2011 by Mark S. Rasmussen in SQL Server: Internals, SQL Server: Sparse Columns

Sparse columns are stored entirely different from normal fixed length and variable length columns. This post demonstrates & parses the sparse vector structure which stores the sparse columns.

No comments | Write first comment
 

Identifying complex columns in records

How do we distinguish a normal variable length column value from one containing a complex value like a row-overflow pointer, back pointer or a sparse vector?

No comments | Write first comment
 

Creating a type aware parser for the sys.system_internals_partition_columns.ti field

Written on Wednesday, July 13, 2011 by Mark S. Rasmussen in SQL Server: Internals

Learn how to parse the base table sysrscols ti field values.

No comments | Write first comment
 

Exploring the sys.system_internals_partition_columns.ti field

Written on Wednesday, July 13, 2011 by Mark S. Rasmussen in SQL Server: Internals

Learn how the sys.system_internals_partition_columns view retrieves its values from the sysrscols base table column, ti.

No comments | Write first comment
 

SQLBits 9 voting & registration open

Written on Tuesday, July 12, 2011 by Mark S. Rasmussen in Conferences, SQL Server: SQLBits, Presenting

SQLBits 9 is coming soon, make sure you register in time & vote for your favorite sessions!

3 comments | Read comments
 

Converting between base 2, 10 and 16 in T-SQL

Written on Monday, July 11, 2011 by Mark S. Rasmussen in SQL Server: Tricks

Lean how to convert between binary (base 2), decimal integers (base 10) and hexadecimal (base 16) using T-SQL.

8 comments | Read comments
 

Determining the uniquifier column ordinal for clustered and nonclustered indexes

Written on Wednesday, July 06, 2011 by Mark S. Rasmussen in SQL Server: Internals, SQL Server: Uniquifier

Once you know what the uniquifier is, you may thirst for more details. This post outlines how to determine where the uniquifier is stored internally in records.

No comments | Write first comment