Earlier I wrote how to find the count of tables used in queries from cache. Here is the Count Table in Cache video in SQL in Sixty Seconds.
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.
Disable Row Goal in SQL Server: When the Hint Helps and When It Hurts
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.
Slow Running Query – SQL in Sixty Seconds #146
One of the most popular questions I receive during Comprehensive Database Performance Health Check is if I have a script that lists Slow Running Query.
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.
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.







