It’s that time of the month again, and once again, I’m late and I’m hosting. I was traveling a lot in October and didn’t sort out hosting for this month. I have someone for Dec, and am looking for more in 2026. This will be a focus for me in December this.
My apologies, and I’ll try to do better.
Without further ago, …
The Invitation
Next week many of us are expecting to see SQL Server 2025 released to the public. The RC0 has been out for awhile and slowly we see people testing it. Even Brent has a server being monitored that’s a 2025 instance. Between Ignite and the PASS Data Community Summit, it has to release then, right?
We’ll see.
In any case, there are some interesting changes, including some language changes. While SQL Server is a mature product, and you might not be that excited, I’m wondering if there is anything that you’re looking forward to working on?
I’ve got a few ideas, but let me know what things in SQL Server will make your job easier, please your customers/clients, or maybe generate a little excitement in your life.
A few topics:
AI capabilities being added to SQL Server
Change Event Streaming
RegEx
JSON enhancements
Batch Mode improvements
AG enhancements
Security changes for managed identities
Password policy on Linux
ADR in tempdb
There’s plenty more, so start writing and publish next week, Nov 11. Here are a few more rules.
Publish the post sometimes on 2025-11-11
Include the logo above
Link the logo to this invite
Make a comment on this post (or trackback/linkback)
I wrote recently about some work with Redgate Clone, and one of the things I did was start up a blank container instance of SQL Server from the image named empty-sql-current. This image contains SQL Server 2019. Clearly, “current” was a poor choice.
I see this often in various places, where someone will reference “current”, “new”, “latest”, or some other term that denotes the most recent changes. If everyone reading the reference is doing so with knowledge of the past and at a time close to publication, this works fine. However, a year later, does this make sense? At the same time, I do like consistent names that might be used in scripts. If I always want developers pulling the latest item, I might use latest. However, if versions are important, than “latest” or “current” might not be the best choice. Much of the time, I tend to try and get a version or some other specific indicator in a name.
It’s like seeing the words “the fastest SQL Server ever” (or pick your technology) in a release announcement. At that time, it might be the fastest SQL Server release, but when the next version is released (hopefully) that won’t be true.
As I’ve matured, I aim to build things that last for the future, thinking beyond what the world looks like right now. This includes architecture decisions and more, but it also includes naming. Reference specific versions, times, etc., with the idea that I want to convey some information with the name. I even name my containers with the port I use because it makes it really easy to see which database container is running on 1433 and which is 41433.
The other consideration for naming, for me, is to include data in the name that I will use for searching or sorting. Perhaps means using good date practices, like 2025-05-01 and 2025-10-03 to ensure my files sort correctly. That might be very important for things like backup files. Maybe it’s using something like “Customer_Copy_Delete_After_Year_Close” for a copy of data that might be relevant through our current financial cycle.
I often do like using names that come to mind first, as this can help me find things, but I also have learned to be more explicit when using names as a way to convey information. With modern computing and support for large names, it sometimes pays to be descriptive.
The only thing I try to avoid is spaces. For the most part, file explorers and web servers handle spaces, but sometimes things break, so I’ve learned to avoid spaces where possible.
This is from 2010, but I loved that people felt this way about Redgate Software. A lot of these words are things that we aim to express to each other and to customers.
Ingeniously Simple was a tagline that our founders aimed for with our first products. I still remember this and challenge developers to work towards this. However, I love these words being things that stand out: calm, dependable, Gold-Standard, Excellent, Trustworthy, even Love.
I have been proud to be a part of Redgate, and I want to ensure that customers not only get value from us for the money they spend, but that they want to, and like to, do business with us.
I have a copy of the Book of Redgate from 2010. This was a book we produced internally about the company after 10 years in existence. At that time, I’d been there for about 3 years, and it was interesting to learn a some things about the company. This series of posts looks back at the Book of Redgate 15 years later.
Redgate has a research arm, called the Foundry, that has been experimenting with AIs and DBA tasks. This post shows how GenAI tech can be helpful to DBAs in finding blocking and removing the offending client.
One of the experiments the Foundry is running is with something we’ve called Runbooks. Here’s the main screen, where I have a welcome and a chat window. This is like what I see in Claude.ai.
I have connected this to two instances in the settings, and given the tool permissions to run queries, but not execute commands. The first server is the Local 2022 Default and the second is the 2910-41433.
A Blocking Problem
I’m going to set up a blocking session with this code. Notice it opens a transaction and then performs an update.
In a second session, I’ll run this code. Notice this select is blocked and I have no results. The bottom shows this as “executing”.
Now I’ll go to the Runbooks and enter a question. In this case, I ask it what is wrong with my 2022 server, as if someone called me and said there was an issue. Imagine the “Select” query owner wondering why things aren’t returning right away.
The Redgate Runbook responds by saying it needs to run something. The first time, it asks me to approve this, which I did. Then it runs it and shows executed.
Below this I get some results of what’s returned. This isn’t different than SP_who2, but if you’ve used that tool, you often get a lot of system stuff. I Could use sp_whoisactive, but again, more results than I want without knowing anything. Here the Runbook as limited results to what I care about.
What’s more, the Runbook then tells me something about what it analyzes. This isn’t perfect, but it’s been better than what a lot of help desk/first line support people have told me.
If I know who 56 is, certainly I can ask them to close their tran. This isn’t perfect, but I can ask the Runbook to do this, as I do at the bottom of the image above.
It again asks me to run something, and when it does, I see the executed note.
If I go back to SSMS, I see the query completed.
I typically might not kill the session without more research. I could have asked for what this is, which I’ll do now for the 57 (blocked) session. What was running here? (since 56 was killed)
Again, I approve this and get results.
To me, that’s pretty cool. Using AI to help me get things done as a lever, rather than a replacement is useful. I could have set the AI checking while I finished another task, or used Slack/Teams to check with others as a troubleshoot. I could certainly let the AI run, but I want approvals. I could copy/paste the code to a tool to run it, but the AI let’s this run separately, while I could be multi-tasking with a phone call to the user, or to the help desk, or anything else. More importantly, if I had this AI working from a mobile phone (jump box, etc.) I could be doing minimal typing and have the tech working for me.
This isn’t a product, and unlikely to be one in its own right, but this is the type of thinking we do at Redgate. Harness AI, in a safe way, that’s useful.