To disable row goal for one query, add the DISABLE_OPTIMIZER_ROWGOAL hint to it. This post builds a table where the row goal chooses a bad plan, shows the reads with and without the hint, and then shows a table where the row goal wins.
Number of Rows Read in an Execution Plan: What It Tells You
The number of rows read shows how many rows a scan or seek touched, and it can be far larger than the rows it returned. This post builds a demo table, compares a scan with two seeks, and explains why a seek can still read too many rows.
Instance Level Fill Factor or Index Level: What to Set
An instance level fill factor is a default for every index that sets none, and an index level setting wins. This post reads the setting, measures what each fill factor costs in pages and saves in page splits, and gives a plan for choosing the level.
Slowest Cached Queries in SQL Server: Time, Reads and Plan
To find the slowest cached queries in SQL Server, rank each statement by its average elapsed time and keep its plan beside it. This post builds a small workload, reads sys.dm_exec_query_stats with the plan, and shows why a database filter on the sql text hides every ad hoc query.
sp_updatestats and Disabled Indexes: What Gets Updated
sp_updatestats and disabled indexes: the procedure updates statistics on disabled nonclustered indexes and skips a table whose clustered index is disabled. This post proves both, times the cost of disabled indexes against dropped ones on a million rows, and generates a targeted update that skips them.
JOIN Elimination in SQL Server: When a Table Drops Out
JOIN elimination removes a joined table from the plan when the query does not need it. This post proves it with STATISTICS IO, then tests nine variations to show when it applies and when it does not, including a foreign key that has lost its trust.
sp_autostats: See and Undo Automatic Statistics Updates
The sp_autostats procedure shows and changes the automatic statistics update setting of one table, one index or one statistic. This post turns the setting off for a table, flips it back for one index, undoes it, and shows that the database level setting and the statistics themselves are untouched.







