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!

  • Back to Basics,  Performance Tuning

    Identifying SQL Server Performance Problems Part 2

    February 10, 2021 /

    Performance Monitoring Tools In this second post we are diving into what tools you can use to capture the important performance metrics you need to gather for baselining your environment. Be sure to read part one first. Performance Monitor First let’s start with what comes native to Windows Server platform, whether you are on an Azure SQL Virtual Machine or your standard SQL Server instance install on premises you have a native tool, called Performance Monitor (affectionately known to most as PerfMon). This reliable tool allows you to easily monitor performance metrics through a Graphical User Interface (GUI), by selecting performance counters for the operating system as well as installed applications such as SQL Server. It…

    Read More
    Monica Morehouse (Rathbun)

    Related Posts

    How Your Hypervisor Can Impact Your CPU

    March 6, 2019

    So How Did It Go?

    September 28, 2015

    Expanding My Reach

    February 7, 2018
  • Back to Basics,  Performance Tuning

    Identifying SQL Server Performance Problems Part 1

    January 27, 2021 /

    Every server, database, storage appliance and network encounter some sort of performance issues. It is a major part of our job as database administrators to properly monitor and fix those performance issues whether it is in your traditional on premises environment or in the cloud. This article will cover ways monitoring performance and how to establish a baseline. We will go over several important performance metrics every database administrator should know and how to gather and interpret those metrics through several different options within SQL Server and your Windows operating system. Now which tool you use to accumulate these metrics depends on what problem you are trying to solve. The…

    Read More
    Monica Morehouse (Rathbun)

    Related Posts

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

    September 10, 2025

    Importance of Statistics in SQL Server

    May 30, 2018

    So How Did It Go?

    September 28, 2015
  • Azure,  Performance Tuning

    Adaptive Joins in SQL Server

    September 2, 2020 /

    SQL Server 2017 (compatibility 140) brought us many Intelligent Query Processing (IQP), formally known as Adaptive Query Processing, features that improve performance on workloads straight out of the box with no code changes to implement. One of those features introduced was Adaptive Joins. In this feature the join operator is dynamically determined at runtime by the optimizer, which defines a threshold number of rows and then chooses between a Nested Loop or Hash Match join operator. This operator switch can produce a better join and improve performance of your queries without you having to lift a finger. Not all queries will qualify for this new feature. The feature only applies…

    Read More
    Monica Morehouse (Rathbun)

    Related Posts

    Please Don’t Do This! Default Index Fill Factor

    September 6, 2017

    Initial SQL Server Configurations

    October 19, 2015

    Everything is coming up ACE’s

    October 28, 2015
  • Performance Tuning

    What is Batch Mode on Rowstore in SQL Server?

    June 16, 2020 /

    Under compatibility level 150, in both SQL Server 2019 and Azure SQL Database, you now can use batch mode for CPU-bound analytic type workloads without requiring columnstore indexes. There is no action needed to turn on batch mode aside from being on the proper compatibility mode. You also have the ability to enable it as a database scoped configuration option (as shown below), and you can hint individual queries to either use or not use batch mode (also shown below). If you recall in my earlier blogs on columnstore, it is batch mode in conjunction with page compression that drastically increases query performance. This feature, Batch Mode on Rowstore, allows…

    Read More
    Monica Morehouse (Rathbun)

    Related Posts

    In Memory Table Indexes

    January 22, 2020

    Sorting in Stored Procedures – Food for Thought

    January 29, 2020

    SSRS Report Won’t Render in VS Preview

    April 12, 2016
  • Performance Tuning

    Coding Standards Gone Bad in SQL Server

    April 21, 2020 /

    Knowing your data is very important when it comes to writing code. Now I’ll admit that I am very far from being a developer, however as a DBA, I spend much of my day’s performance tuning code. In doing so, I get to see many ways code can introduce excess database reads. One of the most recent things I have come across has to do with NULLs. The environment I was working in had no default values in their table design, so it was riddled with NULL values. Over the years they had implemented coding standards to try and mitigate these NULL values within their code. In every column search…

    Read More
    Monica Morehouse (Rathbun)

    Related Posts

    Caution When Dropping Unused Indexes on an Azure SQL Database

    August 12, 2020

    Are My SQL Server Indexes Being Used?

    August 28, 2019

    It’s time to speak again!

    December 1, 2015
  • Performance Tuning

    String Split Function in SQL Server

    February 12, 2020 /

    Did you know that a native STRING_SPLIT function built into SQL Server was added into SQL Server 2016? As a consultant I see so much code that call out to a scalar function that are used to split out string delimited variables into a usable list. For those that use this method I suggest you look at this function. STRING_SPLIT is a table valued function that returns a single column of your string values split out by the delimiter. This is an unusual bit of T-SQL, in that compatibility level 130 or higher is required for its use (Microsoft didn’t want to induce breaking changes into existing user code). Using…

    Read More
    Monica Morehouse (Rathbun)

    Related Posts

    Replication Max Text Length

    June 20, 2018

    Filtered Index Basics

    May 22, 2019

    It’s time to speak again!

    December 1, 2015
  • Performance Tuning

    Sorting in Stored Procedures – Food for Thought

    January 29, 2020 /

    We know that sorting can be one of the most expensive things in an execution plan as shown below. However,  we continue to do ORDER BYs repeatedly. Yes, I 100% agree that there is a need to sort a results set and that this should be done in the procedure for good reason, but my concern is having  multiple sorts, erroneous sorts, and the sorts that can be done elsewhere. These are the ones that waste resources and can stifle performance. Many of us writing procedures tend to write in code blocks. We write the SELECT, JOINS, FROMs and WHERES then immediately follow it up with and ORDER BY as…

    Read More
    Monica Morehouse (Rathbun)

    Related Posts

    Why DBAs Still Need to Know the Foundations of SQL Server

    August 19, 2025

    Back to Basics: Why not parameterize?

    December 23, 2015

    The Mystery of SQL Server 2025’s New Tricks – Scooby Dooing Episode 5

    September 17, 2025
  • Performance Tuning

    In Memory Table Indexes

    January 22, 2020 /

    Now that I have written about In-Memory Tables and Migrating to In-Memory tables, let’s look at indexes and how they are created and how they work within those tables. As you can imagine indexes, called memory optimized indexes are different for these types of tables, so let’s see just how different that are from regular tables. Before we dive into this subject it is VERY important to note the biggest differences. First,  If you are running SQL Server 2014 memory optimized indexes MUST be created when the table is created or migrated. You cannot add indexes in an existing table without dropping and recreating the table. After 2016 you now…

    Read More
    Monica Morehouse (Rathbun)

    Related Posts

    TIL: Microsoft Azure Part 1

    May 17, 2017

    Importance of Statistics in SQL Server

    May 30, 2018

    Trace Flags That Are Now Defaulted Behaviors in SQL Server

    December 18, 2019
  • Performance Tuning

    Memory Optimizer Advisor

    January 15, 2020 /

    Previously I wrote about In-Memory Optimized Tables, in this blog I am going to discuss how to determine which tables could benefit from being In-Memory by using a tool called Memory Optimization Advisor (MOA). This a is a tool built into SQL Server Management Studio (SSMS) that will inform you of which tables could benefit  using In Memory OLTP capabilities and which may have non supported features. Once identified, MOA will help you to actually migrate that table and data to be optimized. Let’s see how it works by walking through it using a table I use for demonstrations in AdventureWorks2016CTP3. Since this is a smaller table and doesn’t incur…

    Read More
    Monica Morehouse (Rathbun)

    Related Posts

    5 Ways to Examine Cardinality Metrics

    May 2, 2018

    TIL: Microsoft Azure Part 1

    May 17, 2017

    How Your Hypervisor Can Impact Your CPU

    March 6, 2019
  • Performance Tuning

    Memory Optimized Tables in SQL Server

    January 8, 2020 /

    Sometimes when I try to learn about a concept my brain blocks out everything about it. Talking about anything that uses the “In Memory” concept tends to do this to me on occasion. It’s important to note that “In Memory” is a marketing term for a series of features in SQL Server that have common behaviors but are not inherently related. So, in my next few blogs I am going to attempt to explain some In-Memory concepts as it relates to SQL Server starting with a dive into Memory Optimized Tables. I’ve already written about Columnstore which has vastly different use cases to In Memory OLTP, and you can find…

    Read More
    Monica Morehouse (Rathbun)

    Related Posts

    Importance of Statistics in SQL Server

    May 30, 2018

    Wait… Could This Be the End of Index Maintenance?

    November 5, 2026

    Comparing Execution Plans

    June 19, 2019
12345

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

  • SSMS Is Getting Smarter—and This Isn't Just About Writing SQL
    SSMS Is Getting Smarter—and This Isn't Just About Writing SQL
  • Wait… Could This Be the End of Index Maintenance?
    Wait… Could This Be the End of Index Maintenance?
  • Hide and Group Columns in SSRS Using a Parameter
    Hide and Group Columns in SSRS Using a Parameter
  • It's All in the Name, Index Naming Conventions
    It's All in the Name, Index Naming Conventions
  • SQL Index Creation Using DROP EXISTING= ON
    SQL Index Creation Using DROP EXISTING= ON
  • SQL Server Is Still Here and Microsoft Is Still Investing in It
    SQL Server Is Still Here and Microsoft Is Still Investing in It
  • How to Get Started with Always Encrypted for Beginners Part 2
    How to Get Started with Always Encrypted for Beginners Part 2
  • Resizing Tempdb (When TEMPDB Wont Shrink)
    Resizing Tempdb (When TEMPDB Wont Shrink)
  • Quick Tip: Remove CONVERT\CAST from your WHERE\JOIN clauses
    Quick Tip: Remove CONVERT\CAST from your WHERE\JOIN clauses
  • SQL Server Data Collection and Management Data Warehouse
    SQL Server Data Collection and Management Data Warehouse
Graceful Pro Theme by Optima Themes - 2026 ©
Loading Comments...