A columnstore scan shows zero actual rows when it aggregates rows itself, and the rows sit in the locally aggregated rows property. A tested demo on 1,000,000 rows shows 0 actual rows and 1,000,000 locally aggregated rows. The post also covers a scan that really is empty, and what STATISTICS IO counts.
How to Disable Batch Mode in SQL Server? – Interview Question of the Week #252
My immediate reaction was why would you disable batch mode in SQL Server when it is really is an awesome feature for performance
STATISTICS TIME and IO: Turn Them On for Every SSMS Query
To get STATISTICS TIME and IO for every query, tick two boxes in the SSMS options once instead of typing SET STATISTICS in each window. This post builds a small demo, reads the output line by line, shows that a SELECT and an UPDATE both report their cost, and explains which windows the option affects.
Procedure Recompilation: Force a New Plan in SQL Server
Procedure recompilation builds a new plan without changing the procedure. A tested demo compares EXEC with WITH RECOMPILE and sp_recompile on a skewed table, with 100,089 reads on a stale plan and 348 on a fresh one. It also shows that sp_recompile removes every cached plan of the procedure.
Row Mode vs Batch Mode: Measuring the Speed Difference
A fair test of row mode vs batch mode changes only the execution mode. This post uses a query hint to force row mode at the same compatibility level, checks that both modes return the same rows, and times five runs of each on a three million row table. It also shows a query where batch mode gains nothing.
Finding Regressed Queries in Query Store After a Deployment
Find regressed queries in Query Store using weighted before-and-after duration and CPU, then compare plans and changed procedure text.
Granting Read Access to One Schema With GRANT SELECT ON SCHEMA
Use GRANT SELECT ON SCHEMA for focused read access, test a loginless user, and check ownership chains and table-level DENY behavior.







