We’ve all been there. You’ve got a query where the JOIN or WHERE predicate is not SARGable. You’ve read about how this can be a problem, and how bad it is for performance. Alas, you cannot change the query. Sometimes this reason is political, sometimes … [Read More]
Stop shrinking your tempdb data files I recently wrote about growing, shrinking, and removing tempdb files. In that article I explained that SQL Server won’t move a page that contains an internal worktable object, and thus trying to shrink tempdb files can be futile. Today, … [Read More]
There’s a lot of advice out there on the internet that suggests that you should not install SSMS on your database servers running SQL Server. This came up at work recently, where I was asked “Should we install SSMS on our database servers?” and my … [Read More]
This morning, my friend Aaron Bertrand (blog|twitter) posted a plea for help with STRING_SPLIT() improvements. I’m very much in Aaron’s corner on this, having written about the olden days myself. Why STRING_SPLIT() is supposed to be awesome CLR was fast, but inaccessible to many DBAs. … [Read More]
Changing a column from int to bigint has gotten a lot easier since I started working on SQL Server back at the turn of the century. SQL Server 2016 introduced the ability to do ALTER TABLE…ALTER COLUMN as an online operation using the WITH (ONLINE=ON) … [Read More]
Yesterday, I talked about batching deletes, and the day before I talked about how much I like to delete data, and why it’s necessary to do it, despite being a data pack rat. Today, let’s look at just one scenario, and how I like to handle it. In my experience, this is one of the most common purge requirements (and probably the easiest), so first, let’s look at the business requirements.
DBAs & Data professionals tend to be digital packrats. My personal Google Drive is filled with random files that I refused to part with–even though it’s of questionable value. I lament that I do not have a copy of every paper I typed in high school or college–and I envy those who do. You never know when you’ll need notes from that meeting 6 years ago, or when you’ll need that funny GIF you created for an inside joke you no longer remember.
On August 28, 2018 at 2PM EDT, I’ll be joining Melissa Connors (blog|twitter), Kevin Kline (blog|twitter), and Rob Sewell (blog|twitter) for a webinar on advanced SQL Server features. The webinar centers around a real-life case study of technology SentryOne is using in it’s own database. … [Read More]
I was recently doing a training session when a developer commented that it was OK to run an expensive query twice because on the second execution, SQL Server would use the “results cache” and be “practically free”. It’s not the first time I’ve heard someone refer to a “results cache” in SQL Server. If you don’t know better, you might think SQL Server has a “results cache” because the second execution of a query is often faster.
Identifying blocking is one of the most basic things that a DBA should be monitoring for. I previously wrote about how to identify blocking in SQL Server and find the leading blocker. Recently, my friend Jim Donahoe (blog | twitter) asked me about setting up … [Read More]