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

    How Your Hypervisor Can Impact Your CPU

    March 6, 2019 /

    Recently I had a client complain of chronic high CPU utilization. The performance of their SQL Server had degraded, and it appeared to be related to higher than normal CPU utilization in conjunction with symptoms of unresponsive user queries.  The root cause was twofold—a third party hosting provider had overallocated virtual processors on the physical host where the virtual machine (VM) running SQL Server was residing, as well as a recent upgrade from a version of VMWare that was not patched for Spectre and Meltdown. The host had 16 physical cores and was hyperthreading (making it effectively 32 cores) until the hosting provider patched from VMWare 5.5 to a newer…

    Read More
    Monica Morehouse (Rathbun)

    Related Posts

    SQL Data Discovery and Classification in SSMS 17.5

    December 5, 2018

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

    November 4, 2025

    How Much Will Compression Really Gain Me in SQL Server?

    October 31, 2018
  • Performance Tuning

    How Much Will Compression Really Gain Me in SQL Server?

    October 31, 2018 /

    Did you know compression can gain you more than just space on a disk, it can allow you to fit more data into the buffer pool? That means queries have faster and more efficient reads which can help reduce I/O. It is a performance tool I highly recommend you consider for your environments. But how do you know how much compression savings you can gain? SQL Server gives you a handy system stored procedure sp_estimate_data_compression_savings that will help you calculate compression gains. It’s a great tool to use when trying to decide if compression is right for your environment and what type to use. This procedure allows you to estimate…

    Read More
    Monica Morehouse (Rathbun)

    Related Posts

    Live, Learn, and Grow

    April 25, 2018

    Attending Summit as a New Leader

    November 6, 2015

    System-Versioned Temporal Tables

    August 30, 2017
  • Performance Tuning

    Keeping Large Table Statistics Current -TF2371

    October 24, 2018 /

    Statistics are the magic ingredient that helps the query optimizer create its best guess for generating an execution plan. Keeping statistics as accurate as possible will give the optimizer the information it uses to calculate estimated costs and cardinality, which enables it to properly allocate resources such as memory grants. In this blog I am not going to go into what statistics are and how they are used. There are many great resources out there to read, I am however going to tell you about a trace flag that can help you with keeping your large table statistics up to date.  I will also explain why your statistics may not…

    Read More
    Monica Morehouse (Rathbun)

    Related Posts

    Importance of Statistics in SQL Server

    May 30, 2018

    It’s All in the Name, Index Naming Conventions

    January 10, 2018

    Synchronous VS Asynchronous Statistics Updates

    October 25, 2017
  • Performance Tuning

    SQL Server Data Collection and Management Data Warehouse

    October 3, 2018 /

    We all have the need to collect system and performance information regarding our SQL Servers. Some of us use third-party tools, SQL Trace, or a homegrown solution.  Did you know Microsoft has a built-in tool to help you accomplish this? It’s called Data Collection and the data it collects (collection sets) is stored in a relational Management Data Warehouse. The data collected is used to generate reports giving us in with very readable and useful insights to our servers. Not only can you get performance information, but you can also use SQL Profiler to export trace definition and create custom collection sets. This is not a new SQL Server feature,…

    Read More
    Monica Morehouse (Rathbun)

    Related Posts

    The New Public Speaking

    April 29, 2020

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

    November 4, 2025

    Filtered Index Basics

    May 22, 2019
  • Back to Basics,  Configurations,  Performance Tuning

    Careful with your SQL Server Max Memory settings

    September 19, 2018 /

    Quite often I see database administrators set SQL Server max server memory thinking everything related to SQL Server uses this shared memory pool. This is a mistake. There are many things that rely on memory that are not part of SQL Server. Best practices state that you should leave memory allotted for the operating system. However, did you know that if you are running services like SSIS, SSAS or SSRS on the same server as the database engine that it does not use the same memory you have allocated for SQL Server? If the Max Memory setting is not configured correctly, these other serves could incur memory pressure.  While the…

    Read More
    Monica Morehouse (Rathbun)

    Related Posts

    November #SQLChat – How to Build your Name Recognition and SQL Network

    November 12, 2015

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

    July 14, 2021

    Master of None

    October 8, 2015
  • Azure,  Performance Tuning

    What is Automatic Tuning in Azure SQL Database

    August 28, 2018 /

    Microsoft has long given us DBA tools and suggestions to help tune databases, to fix queries with indexes, and many times they were of questionable merit. We have all seen the dreaded dta_index names in a database and rolled our eyes knowing that sometimes these indexes are not what is needed. While the Database Tuning Advisor, has gotten better over time it is still not a tool more senior DBAs use. Microsoft made big steps in helping DBAs with performance with the introduction of Query Store in both Azure SQL Database and SQL Server 2016. Query Store collects execution and run-time performance information.  Microsoft has taken an additional leap with…

    Read More
    Monica Morehouse (Rathbun)

    Related Posts

    Scooby-Doo and the Mystery of Cloud Costs (Let’s have some fun!) – Scooby Dooing Episode 1

    August 25, 2025

    The Gang vs. Jason: Unmasking JSON’s Secrets in SQL Server 2025- Scooby Dooing Episode 7

    October 1, 2025

    Static Data Masking (SSMS 18.0 Preview)

    December 19, 2018
  • 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

    Synchronous VS Asynchronous Statistics Updates

    October 25, 2017

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

    November 4, 2025

    The Case of the Forgotten Compatibility Mode – Scooby Dooing Episode 3

    September 3, 2025
  • Performance Tuning

    Query Predicates in SQL Server

    May 24, 2018 /

    Sometimes people speak “SQL” and expect you know all the terminology. In recent a conversation about query plans I was ranting on and on about how the predicates were written when the person stopped me and asked a very simple question. Like a light bulb going off, it reminded me that not everyone knows what the other person is talking about when terminology is mentioned without clarification. So, this post will answer that persons very valid simple question. What is a SQL Predicate? Predicates are expressions that evaluate to TRUE, FALSE, UNKNOWN. There are two types of predicates Filtered Predicates and Join Predicates. Filtered Predicates cover your WHERE or HAVING…

    Read More
    Monica Morehouse (Rathbun)

    Related Posts

    November #SQLChat – How to Build your Name Recognition and SQL Network

    November 12, 2015

    Static Data Masking (SSMS 18.0 Preview)

    December 19, 2018

    Ooops! Was that me? (Blog Challenge)

    January 10, 2017
  • 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

    DMV’s for the Beginner

    May 15, 2019

    SSRS Report Won’t Render in VS Preview

    April 12, 2016

    Can You Hear It Now?

    January 31, 2018
  • Back to Basics,  Performance Tuning

    Synchronous VS Asynchronous Statistics Updates

    October 25, 2017 /

    One of the things I’ve been able to implement to help with performance is changing from Update Statistics Synchronous to Auto Update Statistics Asynchronously. It’s a simple change that can have a big impact when implemented in highly transactional OLTP environments. Notice I said OLTP not OLAP, since data in an OLAP environment tends to not be as dynamic, so it’s rare to enable this in a data warehouse. So, what’s the difference between the two and why does it help? Synchronous (defaulted as AUTO_UPDATE_STATISTICS =TRUE) By default, when Auto Update Statistics is set to True, the SQL Server Query Optimizer will automatically update statistics when data has met a threshold…

    Read More
    Monica Morehouse (Rathbun)

    Related Posts

    Are My SQL Server Indexes Being Used?

    August 28, 2019

    Attending Summit as a New Leader

    November 6, 2015

    Free Training 24HOP

    April 18, 2018
3456

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

  • Resizing Tempdb (When TEMPDB Wont Shrink)
    Resizing Tempdb (When TEMPDB Wont Shrink)
  • What’s a Key Lookup?
    What’s a Key Lookup?
  • It's All in the Name, Index Naming Conventions
    It's All in the Name, Index Naming Conventions
  • Tempdb Performance Improvements in SQL Server 2022 are Dramatic
    Tempdb Performance Improvements in SQL Server 2022 are Dramatic
  • Memory Optimized Tables in SQL Server
    Memory Optimized Tables in SQL Server
  • How to get started with Always Encrypted for Beginners Part 1
    How to get started with Always Encrypted for Beginners Part 1
  • The Mystery of the Locked-Up Database -Scooby Dooing Episode 6
    The Mystery of the Locked-Up Database -Scooby Dooing Episode 6
  • Understanding Columnstore Indexes in SQL Server Part 2
    Understanding Columnstore Indexes in SQL Server Part 2
  • The Case for Scooby-Dooing: Solving SQL Server Mysteries Like a Pro– Scooby Dooing Episode 8
    The Case for Scooby-Dooing: Solving SQL Server Mysteries Like a Pro– Scooby Dooing Episode 8
  • Please Don’t Do This! Default Index Fill Factor
    Please Don’t Do This! Default Index Fill Factor
Graceful Pro Theme by Optima Themes - 2026 ©
 

Loading Comments...