Explain the log backup chain across FULL and SIMPLE changes, inspect recovery LSNs and backup history, and establish a new backup boundary.
Status Changes Only: Collapsing Repeated Rows With LAG
Hundreds of repeated readings, three real changes. Here is how LAG finds them, and why a plain not-equal test quietly drops rows.
max_column_id_used: How Many Columns a Table Once Had
The max_column_id_used column shows how many columns a table ever had. See it grow, find tables that lost columns, and avoid treating column_id as a position.
Query Progress: Watching a Running Plan With dm_exec_query_profiles
Elapsed time cannot tell you if a query is almost done. Live operator rows can. See how to read them and how far to trust the percentage.
Tuning Query Cost 100% – SQL in Sixty Seconds #181
After the blog posts, lots of people asked me to build a video so here is the video discussing the topic of Tuning Query Cost 100%.
UPDATEUSAGE and Space: What It Fixes and What It Does Not
UPDATEUSAGE and space are two jobs: the command corrects page and row counts but frees no space. See a test where it finds nothing and a rebuild shrinks the table.
Cost Relative to the Batch: Why One Query Shows 100%
Cost relative to the batch is a share of estimated cost. See why one query shows 100% and when the percent points at the wrong statement.







