Readers block writers. Writers block readers. A report takes down the entire app. This is not a riddle. It is just Tuesday under Read Committed. It does not have to be. Read Committed Is Cruel by Default: #PASSDataSummit West. passdatacommunitysummit.com/west/
Darling Data
Darling Data
@erikdarling.com
I will make your #SQLServer faster in exchange for money. https://linktr.ee/darlingdata
473 followers80 following792 posts
My doctor asked how many rows I was expecting. Ten, I said. It was two million. He stayed calm. SQL Server also stays calm about this. That is the whole problem. Cardinality estimates and other lies at my #PASSDataSummit West precon. passdatacommunitysummit.com/west/
November DarlingData release: I Know What You Queried Last Summer. sp_QuickieStore and sp_QueryReproBuilder averages now match Query Store. sp_HealthParser's default run went from 42 seconds to 12.5. github.com/erikdarlingd...
I'll make your team faster with AI (in exchange for money). A one-day workshop, live, on your own queries: AI runs the queries, reads the plans, and tests the fixes. Your team decides what's worth fixing. training.erikdarling.com/ai-for-datab...
I don't tune queries by hand anymore. AI runs the queries, reads the plans, and tests the rewrites. I decide what's worth fixing. My new video course shows you how I set that up. $250 pre-sale until December 1, then $500. training.erikdarling.com/work-with-yo...
Snapshot isolation lets you opt in one query at a time. Like a gym membership where you only pay on days you actually go. This has existed for twenty years. Nobody told you. Read Committed Is Cruel by Default: #PASSDataSummit West. passdatacommunitysummit.com/west/
PerformanceMonitor 3.11.0 is out now. Free. Darling can hand an alert to your own AI agent. Give it the keys and it can force a plan or kill a session, and every move gets logged. Also new: query tags and quiet windows. github.com/erikdarlingd...
Why did the query cross the road? It was stapled to a hint somebody added in 2011. Nobody remembers why. Everybody is afraid to remove it. T-SQL That Doesn't Suck: my full day #PASSDataSummit West precon. passdatacommunitysummit.com/west/
SQL Server Performance Office Hours Episode 91 SQL Server Performance Office Hours Episode 91 https://youtu.be/imqYdlINpVQ To ask your questions, head over here. Chapters 00:00:00 - Introduction 00:04:30 - Query... https://erikdarling.com/sql-server-performance-office-hours-episode-91/
SQL Server Performance Office Hours Episode 90 SQL Server Performance Office Hours Episode 90 https://youtu.be/XVnrzDcrOf8 To ask your questions, head over here. Chapters 00:00:00 - Introduction 00:04:04 - When Plan... https://erikdarling.com/sql-server-performance-office-hours-episode-90/
SQL Server has had row versioning since 2005. 2005. YouTube launched that year. You have been slapping NOLOCK on things longer than YouTube has existed. Read Committed Is Cruel by Default: my #PASSDataSummit West session. passdatacommunitysummit.com/west/
Performance Studio 1.31.0 is out. Suppress one finding by query hash in .planview.json, with a reason, and it stops counting against your CI gate. Thanks to Neal Mummau for the ask. github.com/erikdarlingd...
Knock knock. Who's there? A key lookup. A key lookup who? Knock knock. Who's there? A key lookup. It does this four million more times. Key lookups, nested loops, and other repeat offenders at my #PASSDataSummit West precon. passdatacommunitysummit.com/west/
What did the shared lock say to the exclusive lock? Nothing. It waited four hours. Then the app timed out and everyone got invited to a meeting about it. Fewer meetings. Read Committed Is Cruel by Default: #PASSDataSummit West. passdatacommunitysummit.com/west/
I inherited a stored procedure today. The first comment says TODO fix before 2009. There is a GOTO in it. This is not a joke. It is a cry for help. So is my #PASSDataSummit West precon: T-SQL That Doesn't Suck. passdatacommunitysummit.com/west/
Performance Studio 1.30.0 is out. The planview CLI is now a .NET tool on NuGet, so CI can run plan analysis without building from source: dotnet tool install -g PerformanceStudio.Cli Thanks to Neal Mummau for the request. github.com/erikdarlingd...
Knock knock. Who's there? The 9am report. The 9am report who? The 9am report, still holding locks at noon, and now the app is down. One report should not be a hostage situation. My #PASSDataSummit West session can get you out. passdatacommunitysummit.com/west/
My window function spilled to tempdb. Tempdb was fine with it. Tempdb has seen things you people wouldn't believe. Window functions that keep their memory grants to themselves: my #PASSDataSummit West precon. passdatacommunitysummit.com/west/
PerformanceMonitor 3.10.0 is out now. Free. The web dashboard gets FinOps, job history, mute rules, and query plans and deadlock graphs right from the grids. One time picker everywhere: type "last 3 days" and go. github.com/erikdarlingd...
Microsoft Executes Code Against Managed Instances That Doesn’t Follow Basic Security Practices I'm the kind of guy who logs all of the errors that occur within SQL... https://erikdarling.com/microsoft-executes-code-against-managed-instances-that-doesnt-follow-basic-security-practices/
next thing you know we'll have to pay for claude's therapy bills too. www.theverge.com/ai-artificia...
My therapist says I have blocking issues. My users filed a ticket saying the same thing in all caps. We can all work through this together in Seattle. Read Committed Is Cruel by Default: #PASSDataSummit West. passdatacommunitysummit.com/west/
What do you call a WHERE clause wrapped in six functions? Non-sargable. What do you call the person who wrote it? You, eight months ago, in a hurry. Come make peace with your past. T-SQL That Doesn't Suck: #PASSDataSummit West precon. passdatacommunitysummit.com/west/
Performance Studio 1.29.0 is mostly fixes: Run Repro shows the full error, Query Store treats a cancel as a cancel, the SSMS extension finds the app without asking, and the installer is code-signed. github.com/erikdarlingd...
Knock knock. Who's there? Interrupting lock wait. Interrupting lock w Msg 1205: your joke was chosen as the deadlock victim. Rerun the joke. Read Committed Is Cruel by Default at #PASSDataSummit West. Fewer victims, better jokes. passdatacommunitysummit.com/west/
Knock knock. Who's there? Yesterday's execution plan. Yesterday's execution plan who? The one built for three rows. Today's parameter has two million. Parameter sniffing, live and unmedicated, at my #PASSDataSummit West precon. passdatacommunitysummit.com/west/
PerformanceMonitor 3.9.0 is out. Alerts open right into the charts that explain them. Query plans get a minimap and flag possible parameter sniffing. PostgreSQL servers get analyzed too: vacuum, bloat, blocking, waits. github.com/erikdarlingd...
Why don't rows fight under snapshot isolation? They each get their own version. Bad joke. The blocking you put up with every day is worse. Read Committed Is Cruel by Default: my #PASSDataSummit West session in Seattle. passdatacommunitysummit.com/west/
October DarlingData release: The Nightmare Before Compaction. sp_QueryStoreCleanup can split long removals across two sessions and compact Query Store's internal tables. Default run: 154 seconds to 37 on 745k queries. github.com/erikdarlingd...
OPTION (RECOMPILE) walks into a bar. OPTION (RECOMPILE) walks into a bar. OPTION (RECOMPILE) walks into a bar. It never stops walking into the bar. That is the hint. T-SQL That Doesn't Suck: a full day precon at #PASSDataSummit West. passdatacommunitysummit.com/west/
Why did Microsoft turn RCSI on by default in Azure SQL Database? Because they had to run your workload themselves. Not a joke. It is my strongest argument. I brought others. Read Committed Is Cruel by Default, at #PASSDataSummit West. passdatacommunitysummit.com/west/
I asked an AI to tune my query. It added DISTINCT, apologized, and said the real index was the friends we made along the way. AI T-SQL gets a segment at my #PASSDataSummit West precon. Where it helps, where it lies. passdatacommunitysummit.com/west/
Knock knock. Who's there? A writer. A writer who? Doesn't matter. You're a reader under Read Committed, so you'll be waiting out here until the writer is done. Read Committed Is Cruel by Default: #PASSDataSummit West, Seattle. passdatacommunitysummit.com/west/
What's the difference between a table variable and a temp table? One of them has statistics. That's it. That's the joke. It's also why your batch job takes four hours. Full day of this at my #PASSDataSummit West precon: T-SQL That Doesn't Suck. passdatacommunitysummit.com/west/
I put NOLOCK on all the reports. Now they are fast and occasionally fiction. Row versioning gets you the fast part without the creative writing. Read Committed Is Cruel by Default: my session at #PASSDataSummit West. passdatacommunitysummit.com/west/
Knock knock. Who's there? An implicit conversion. An implicit conversion who? Doesn't matter. You're scanning the whole table now. T-SQL That Doesn't Suck, my #PASSDataSummit West precon. Bring your worst stored procedures. passdatacommunitysummit.com/west/
congratulations to visual studio code for reaching a cool version number: code.visualstudio.com/updates/v1_138
PerformanceMonitor 3.8.0: build your own alert rules on any metric it collects, SQL Server or Postgres. High CPU pages name the backup that caused them. Long query alerts name the Agent job. Your 2am self deserves this. github.com/erikdarlingd...
Two sessions try to tell the same knock knock joke. Neither can say who's there until the other answers. SQL Server picks a victim. That is the real technical term. Deadlocks, blocking, and how to stop both: my #PASSDataSummit West session. passdatacommunitysummit.com/west/
A CTE walks into a bar. Then walks into the same bar. Then walks into the same bar. You referenced it three times. It is not materialized. It will keep walking into that bar. T-SQL That Doesn't Suck: my full day #PASSDataSummit West precon. passdatacommunitysummit.com/west/
Performance Studio 1.26 is out. The UI got a real pass. One icon set instead of emoji, advice as cards instead of a wall of monospace. Plus a stack of bugs I only found because I was in there looking. github.com/erikdarlingd...
Nobody picked Read Committed. Ever. It came with the box, like a free knife that only cuts you. My #PASSDataSummit West session: Read Committed Is Cruel by Default. Pick an isolation level on purpose, once, as a treat. passdatacommunitysummit.com/west/
Knock knock. Who's there? Your query from this morning. Your query from this morning who? Exactly. Still running. Nobody remembers who it is anymore. I fix this for a living. Full day precon at #PASSDataSummit West: T-SQL That Doesn't Suck. passdatacommunitysummit.com/west/
Free SQL Server and PostgreSQL performance monitoring. No agents, no per-core pricing. v3.7.0 is out with fleet-health, Azure SQL Database, and PostgreSQL fixes across the board. 5 servers or 500, same tool. erikdarling.com/free-sql-ser...
Performance Studio 1.24.0: crash-proof session restore, unsaved queries that survive a crash, full analysis of stored procedure and cursor bodies, and web plan sharing that no longer chokes on deep plans. github.com/erikdarlingd...