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.
Experience – My Very First YouTube Live
My very first YouTube Live started with a microphone problem. Here is my honest look at what went well, what I must improve, and the topics we covered.
SQL SERVER – Legal CASE Defaults and Row Dependent Values
A CASE Expression can appear in a default, but cannot reference another row column there. My earlier blanket prohibition was incorrect.
Queries Using Specific Index – SQL in Sixty Seconds #180
The challenge I face is that often DBAs ask me to prove that indexes are really not used by queries. Let us learn about Queries Using Specific Index.
Self-Referencing Foreign Keys: Managers, Employees and Deletes
Delete a manager and SQL Server says no, which is good. See how to reassign reports safely and how to catch loops the foreign key allows.










