Fragmentation in columnstore indexes means deleted rows that stay inside compressed row groups, and row groups that are too small. This post builds a demo table, measures the deleted rows with the row group view, and compares REORGANIZE with REBUILD.
SQL SERVER – Diagnosing SINGLE_USER Errors Without a Universal EMERGENCY Workaround
Giving Error during a SINGLE_USER change requires the exact error and database state. My original case lacked enough diagnostic detail.
Check Trace Flag Status With DBCC TRACESTATUS
DBCC TRACESTATUS checks trace flag status. Run it with -1 to list every flag that is on, or with flag numbers to test them one by one. This post turns on a harmless session flag, reads its scope, finds startup flags, and stores the result in a table.
Table Usage in the Plan Cache: Count Queries That Touch a Table
Table usage in the plan cache shows how many times the cached queries of a database touched each table. This post builds a demo database, shows why a text search of the cache misleads, reads the table names from the plan XML, and lists the queries behind one table.
Quartiles With PERCENTILE_CONT and NTILE
Compare quartiles from PERCENTILE_CONT with NTILE row buckets, calculate interquartile range, and flag candidates beyond 1.5 IQR.
percent_complete: Which Commands Show Real Progress
percent_complete tells you how far a running command has come, but only some commands fill it in. This post times eleven commands on SQL Server 2025, shows which ones report real progress and which stay at 0, and adds a way to watch the silent ones.
SQL SERVER – Delayed Durability and Flushing Log Files
Flushing with sys.sp_flush_log hardens preceding committed delayed-durable transactions in the current database. I use delayed durability only with an accepted tradeoff.







