Topic

Performance & Data

Databases, telemetry, ingestion and the measurements behind a system that is actually faster.

Performance & Data13 min

Keep the Failed Attempt: Retry History, Late Events and Retention

A retry that overwrites one status row erases the timeout before it, and a late report can undo the success. Build an attempt ledger in SQL Server that keeps both and survives retention.

Performance & Data13 min

ASP.NET Waits with Low CPU: Find the Queue Before Changing the Pool

The same endpoint can queue at a semaphore or inside the thread pool. Read the counters and a real stack, measure what async changes, and build a permit gate that cannot leak.

Performance & Data12 min

Why Your .NET Payload Survives: Trace the Roots, Unlink and Drain

Follow the strong path that keeps a 16 MiB payload alive on .NET 10, find the second owner behind an unsubscribed event, and build a subscription that unlinks and drains safely.

Performance & Data13 min

Verify the Statistics Your SQL Maintenance Job Actually Changed

A green UPDATE STATISTICS job can refresh the wrong table, sample when you asked for a full scan, or be undone by an automatic update. Check the object you meant, by id, and say unknown when unsure.

Performance & Data14 min

Telemetry Event Formats: Units, Versions, Bytes and CPU in .NET

A strict C# telemetry codec followed byte by byte: why a tolerant JSON reader turns 1.5 ms into 1.5 s, and what Brotli, buffers and decoders really cost on .NET 10.

.NET & C#16 min

Async Work Is Not on the Thread Stack: Tracing Suspended .NET Code

Why a live stack cannot show awaiting callers, how .NET 11's async profiler records the continuation chain instead, and why request identity must come from your own trace ID.

Performance & Data11 min

SQL Date Filters: Keep the Business Day and Count the Rows Read

Compute 23-hour and 25-hour local days at both ends, filter with typed half-open intervals, and see why a CONVERT(date) seek still read twice the rows on SQL Server 2025.

Performance & Data10 min

Indexing JSON in SQL Server 2025: Typed Keys, Real Plans, Write Costs

A computed-column index and the new JSON index both turn a 4,100-page scan into a few reads, but each stores its own meaning of a value and makes every update pay. Measured on SQL Server 2025.

.NET & C#14 min

Lazy<T> Under Contention: Racing Factories, Cached Failures, Blocked Threads

What each LazyThreadSafetyMode really does on the first call: losing factories that keep their side effects, exceptions cached forever, blocked callers, and an async cache that recovers.

.NET & C#14 min

Why .NET 11 Removes This Box, but Keeps That Allocation

One binary on .NET 10 and .NET 11: nullable boxes that stay local stop allocating, escaping boxes and closures do not. Read the JIT code and the measurements behind each case.

.NET & C#14 min

Reusable ValueTask Sources: When Is It Safe to Call Reset?

Build an IValueTaskSource that survives reuse: release in GetResult, reserve completion before SetResult, and stop an inline consumer from breaking the next operation.

.NET & C#14 min

Runtime Async in .NET 11: Who Builds the State Machine Now?

In .NET 11 the JIT, not the C# compiler, can implement async methods. Read the IL and x64 it produces, and see what changes for completed and suspended calls.