Performance Counters Over Time: Making sys.dm_os_performance_counters Tell the Truth
Run this query on any SQL Server and look at the number it gives you for Batch Requests/sec:
|
1 2 3 4 5 6 7 |
SELECT [counter_name] , [cntr_value] FROM [sys].[dm_os_performance_counters] WHERE [counter_name] = N'Batch Requests/sec'; |
On a server that has been up for a few weeks you will get something like…
I Called Myself Dumb in a Code Comment. I Was Wrong About the Cursor.
I went looking through an old reconciliation script this week, the kind you write once for a quarter-end reconciliation and forget about, and I found a note from my past self. Right above a cursor,…
Is Your SQL Server Using RC4 for Kerberos? Here’s How to Find Out
You probably haven’t thought about Kerberos encryption types recently. That’s fair; the protocol mostly “just works” and has for decades. But CVE-2026-20833 changed the calculus. Microsoft disclosed a Kerberos information disclosure vulnerability in January 2026…
Seeing Exactly Where SQL Server Stores Each Column
You add a couple of varchar(max) columns to a table because you are not sure how big the values will get. Most rows hold a few dozen characters. A handful hold tens of thousands. Everything…
How SQL Server Stores DATETIME2, DATE, and TIME
In I took a DATETIME apart byte by byte: two 4-byte integers, a date counted from 1900 and a time counted in awkward three-hundredths of a second. That awkward tick is exactly what Microsoft set…
How SQL Server Stores a DATETIME, Down to the Bytes
Every DBA eventually asks the same odd little question. You insert ‘2024-03-14 09:26:53.999’, read it back, and it says 09:26:54.000 instead. Store a value ending in .456 and it comes back as .457. Nothing is…