The best DBCC PAGE alternative is the function sys.dm_db_page_info. This post builds a demo table, lists all of its pages with the allocation view, and compares one page with DBCC PAGE. It also explains the two modes and the page wait use.
Identify SQL Server Version From a Backup File
To identify SQL Server version from a backup file, run RESTORE HEADERONLY and read DatabaseVersion and SoftwareVersionMajor. This post makes a demo backup, reads its header, and maps the numbers to products. It also shows how to compare the backup with your server in T-SQL, and why a header sometimes fails to read on an older server.
Physical and Virtual Memory Explained for SQL Server DBAs
Physical and virtual memory are two different things, and SQL Server reports on both. This post explains RAM, address space, the page file and paging in plain words. It then reads each number with three read-only queries and ends with settings worth checking.
Database Sharding – How to Identify a Shard Key?
Picking the shard key is the hardest part of Database Sharding. Here are the guiding principles I shared at a user group for choosing a good one.
Dirty Pages in Memory: Count Them Before and After CHECKPOINT
Dirty pages in memory are changed data pages that SQL Server has not yet written to disk. This post counts them with sys.dm_os_buffer_descriptors on SQL Server 2025, before and after CHECKPOINT, and explains why the same script can show nothing on newer servers.
Buffer Pool Extension and In-Memory OLTP: What Each One Caches
Buffer Pool Extension caches clean pages of disk-based tables on an SSD. Memory-optimized tables have no pages, so it cannot hold them. This post proves it on SQL Server 2025 with two tables and read-only checks.
Primary Data File Extensions: Does the .mdf Name Matter?
Can a primary data file end in something other than .mdf? I built a demo database with odd names, checked each file, then detached and attached it.







