Clone Database in SQL Server with DBCC CLONEDATABASE and you copy the structure and the statistics without a single row. This post runs the command on a demo database, checks what the clone holds and what it leaves out, and shows that the optimizer builds the same plan from the copied statistics.
Why Execution Plan Operator Read More Rows Than Available? – Interview Question of the Week #255
Question: Why Execution Plan Operator Read More Rows Than Available?
Answer: Statistics.
Now let us learn detailed answer in this blog post.
Query Plan Join: Why a Query With No Join Shows One
A query plan join can appear even when the query has no join, because SQL Server joins a nonclustered index to the table itself. This post reads the plan of a one table query, removes the join with a covering index, and finds the row count where SQL Server stops using lookups.
Statistics Sample Percent and PERSIST_SAMPLE_PERCENT
The statistics sample percent decides how many rows SQL Server reads when it updates a statistic. A tested demo on 1,000,000 rows shows the default sample of 35.5 percent, a FULLSCAN of 100 percent, and the way PERSIST_SAMPLE_PERCENT keeps 100 percent for later updates, including an automatic one. It also shows that a sampled update can be slower than a full scan.
Nullable Columns in a Database: List Them and Count NULLs
Nullable columns in a database cost you ISNULL calls and OR IS NULL conditions in every query. This post lists them with a catalog query, compares the INFORMATION_SCHEMA version, and counts the real NULLs in each column. The count tells you which columns can become NOT NULL and which can go.
APPROX_COUNT_DISTINCT With GROUP BY: When Exact Wins
APPROX_COUNT_DISTINCT with GROUP BY returns an estimate for every group. A tested demo on 2,000,000 rows shows a memory grant of 207,616 KB for the exact count against 3,112 KB for the estimate, and a memory grant of 0 for the exact count once an index exists. It also shows the error on small groups, where 4,648 of 100,000 groups were off.
Queries Waiting for Memory: Read the Grant Counters
Queries waiting for memory are counted by the Memory Grants Pending counter and listed by sys.dm_exec_query_memory_grants. A tested demo holds a sort grant of 41,848 KB with a blocked query and reads it from the view. The post explains how to spot a waiting request and what causes the wait.







