Database Mirroring Counters Missing from Perfmon?
Collecting perfmon counters from SQL Server databases where you are using database mirroring is a little tricky
The counters won’t behave “normally” until after you set up mirroring for a database.
Collecting perfmon counters from SQL Server databases where you are using database mirroring is a little tricky
The counters won’t behave “normally” until after you set up mirroring for a database.
For a while now, I’ve been indulging in what feels like a huge guilty pleasure: an almost meeting-free existence. I’ve been living life scheduled on my own terms. I commit to appointments for workouts, volunteering, haircuts, and medical appointments, but not much else. I’ve been publishing pre-recorded videos and online courses which I can make whenever it feels right.
You’ve got some troubling wait stats in SQL Server. How can you tell which queries are causing those waits?
Learn the pros and cons of different techniques to track down the cause of both common and tricky waits in SQL Server, including CXPACKET, PAGEIOLATCH, LCK, RESOURCE_SEMAPHORE, and THREADPOOL waits.
Nonclustered indexes are awesome in SQL Server: they can get you huge performance gains.
But we can’t always create the perfect index for every query. And sometimes when SQL Server finds an index that isn’t quite perfect and decides to use it, it might make your query slower instead of faster.
If you need to add, remove, or replace hints from ad-hoc queries where you can’t change the code, plan guides can help. See a demo of removing a query hint from parameterized TSQL run from an application, and get tips on how to make your plan guides work in SQL Server.
The name of the “SQL Statistics \ Batch Requests/sec” counter is confusing: exactly what is a request? The request is the WHOLE batch. See a demo of this counter in this quick 5 minute video.
Batch mode was introduced as a way to help SQL Server process data from columnstore indexes faster. The whole idea with columnstore is that you pull big compressed sets of rows out for aggregation or other operations in big chunks.
Batch mode is a way that operators can work on a “batch” of up to 900 values at a time, instead of working on individual rows. Batch mode can reduce the overhead of metadata and make more efficient use of your CPUs.
Copyright (c) 2025, Catalyze SQL, LLC; all rights reserved. Opinions expressed on this site are solely those of Kendra Little of Catalyze SQL, LLC. Content policy: Short excerpts of blog posts (3 sentences) may be republished, but longer excerpts and artwork cannot be shared without explicit permission.