A Shot of SQLEspresso

SQL Blogs by Monica Morehouse (Rathbun)

  • Home
  • Session Downloads
  • Event Calendar
  • PASS
    • Hampton Roads SQL User Group
    • SQL Saturday
    • PASS WIT VC
  • DCAC
  • Contact Me
    • Disclaimer
  • Home
  • Session Downloads
  • Event Calendar
  • PASS
    • Hampton Roads SQL User Group
    • SQL Saturday
    • PASS WIT VC
  • DCAC
  • Contact Me
    • Disclaimer

No Widgets found in the Sidebar Alt!

  • Performance Tuning

    Importance of Statistics in SQL Server

    May 30, 2018 /

    Following up on my last post about the Cardinality Estimator let’s talk about column statistics and how they work and play a part in execution plans. The cardinality estimator relies heavily on statistics to get the answer to selectivity (the ratio of distinct values to the total number of values) questions and calculate a cost estimate. This hopefully gives us the best possible execution plans for queries.  In this post, I will show you where to find information about what your statistics contain and information regarding each of those fields. Then we will look at the impact of over and under estimations caused by stale or missing statistics (or even data…

    Read More
    Monica Morehouse (Rathbun)

    Related Posts

    Solving SQL Server Mysteries with a Whole Gang of Sleuths -Scooby Dooing Episode 4

    September 10, 2025

    Scooby Dooing Episode 10: The Case of the Copy-and-Paste Consultant

    November 4, 2025

    So let’s talk naming conventions

    September 15, 2015
  • Performance Tuning

    5 Ways to Examine Cardinality Metrics

    May 2, 2018 /

    In SQL Server the query optimizer uses a cardinality estimator to answer data SELECTIVITY questions like the ones below. The optimizer uses this cardinality data, which relies heavy on statistics to get the answers and calculate a cost estimate. It takes the #of Rows to Satisfy a Predicate/Total # of Input Rows. How many rows will satisfy a single filter predicate? Multiple? WHERE How many rows will satisfy a join predicate between two tables? JOIN How many distinct values do we expect from a specific column? DISTINCT GROUP BY From this estimate the optimizer is able to find an efficient execution plan that fulfills a query request. You will note that…

    Read More
    Monica Morehouse (Rathbun)

    Related Posts

    Add Azure Cache for Redis to Your Azure SQL Performance Tuning Toolbox

    July 14, 2021

    SQL Server Updates Tricked Me for Years

    February 21, 2018

    Keep It Simple Stupid

    July 24, 2019

About Me

Monica Morehouse (Rathbun)

Microsoft MVP, Performancing Tuning Expert, Leader Hampton Roads SQL Server User Group, Read More…

Consulting

Sessions List

Favorite Tidbits

  • Reminder to Developers

Topic Categories

  • Azure
  • Back to Basics
  • Configurations
  • Data Masking
  • DevOps
  • Encryption
  • Idera Ace
  • Important Links
  • Indexes
  • Lone DBA
  • Misc
  • MVP
  • New SQL Version
  • Performance Tuning
  • Posts with Scripts
  • Problems & Solutions
  • Quick and Dirty
  • Security
  • Speaking
  • SQL Family
  • SQLSaturday
  • SSRS
  • Summit
  • Training
  • TSQL Tuesday
  • Uncategorized

Top Posts & Pages

  • DMV’s for the Beginner
    DMV’s for the Beginner
  • System-Versioned Temporal Tables
    System-Versioned Temporal Tables
  • What does this little check box do? Query Governor SQL Database Setting
    What does this little check box do? Query Governor SQL Database Setting
  • Approximate COUNT DISTINCT
    Approximate COUNT DISTINCT
  • What’s a Key Lookup?
    What’s a Key Lookup?
  • It's time to speak again!
    It's time to speak again!
  • Hide and Group Columns in SSRS Using a Parameter
    Hide and Group Columns in SSRS Using a Parameter
  • New Event Calendar
    New Event Calendar
  • Change Azure SQL Database Service Level Objectives in SSMS
    Change Azure SQL Database Service Level Objectives in SSMS
  • SQL Index Creation Using DROP EXISTING= ON
    SQL Index Creation Using DROP EXISTING= ON
Graceful Pro Theme by Optima Themes - 2026 ©
 

Loading Comments...