Distributed Replay: The Little Engine That Almost Could

SQL Server
Honestly, sincerely, no kidding, I love Distributed Replay. Yes, I get it. Proof positive I'm an idiot. As we needed proof. To be a little fair to me, I love what Distributed Replay could have been, with a little more love. However, fact is, it's on the deprecation list for 2022. Which means, what minimal amount of love, if any, that Microsoft was giving to it, it's all gone, forever. Unlike the Little Engine That Could, turns out that Distributed Replay was the Little Engine That Almost Could, But Didn't. Really Didn't. Let's discuss it a bit. Distributed Replay The concept is wonderful. Capture a bunch of queries from your production system. Replay them on a non-production system for testing. Add in the idea of being able to chain together…
Read More

Extended Events for Anything but Query Tuning: Object Changes

SQL Server
I hear this one all the time: How do I find out who implemented object changes? I also get: Can I see the query that caused object changes? Let's take a look at how you might audit who is doing what and how to your databases. Object Changes in Extended Events If you open up the New Session window for Extended Events in SSMS, the easy way to track down events is to simply type into the box. Here, we care about capturing object changes, so I'm going to simply type object, then scroll a bit: There we are object_altered, object_created and object_deleted. These are the same events that you would see in Trace. Let's use the GUI and take a quick look at what fields they capture: That's in…
Read More

Thank You Andy!

Uncategorized
I remember going into Andy Leonard's session at PASS Summit in Denver. I'm not going to lie, it was kind of sparsely attended, so I got to sit up front and ask questions. Andy answered 'em like the pro that he is and then we got to talking afterwards. I'm honored to say we became friends. Thank you Andy! Andy is one of those people who is quick to try stuff out and then share it with others. He introduced me to Google Hangouts and both of us experimented with them quite a lot, sometimes being the only person in each other's Hangout. Which means we got to talk quite a bit. Thanks Andy. Go read Andy's blog sometime. Yeah, you're going to learn some technical content. However, you're also…
Read More

Learning PostgreSQL: The Tools

AWS, PostgreSQL, RDS
In case you don't know, I've been writing a series of articles over on Simple-Talk as I learn PostgreSQL. It's all from the point of view of a SQL Server person, expanding into a new technology. In other words, a true story. I thought I'd take a moment here on my own blog to talk about the tools I'm using and why I chose those. AWS RDS Let's establish up front, I'm lazy. Very lazy. So yeah, I'm trying to learn this new technology, but I'm going to find as many ways to use the knowledge, skills & tools I already have as I can. Now, I first started learning PostgreSQL because I wanted to learn more about how Flyway works. Further, as I also needed to learn how to…
Read More

Thank You Tim!

Uncategorized
Ah, Tim Ford. I remember the time we were sitting at Ruth Kriss Steakhouse trying to figure out which of the two of us was the dumbest person in the room. Just so we're clear, it was me. Anyway, we've been friends for a long time. Thanks Tim! Thanks for being insane enough to think that teaching tech on a cruise was a good idea. Then, being so utterly 'round the bend that you actually did it. Multiple times. Successfully. And I got to take part in it. Thank you Tim! Like with Wendy, there are no words to express how I feel about our time on the PASS board. Thank you. We've spent so much time together, honestly, it's hard to pick out all the ways you've been kind…
Read More

Database Fundamentals #32: Create Unique Constraints with T-SQL

Database Fundamentals, SQL Server
In the last Database Fundamentals post, I explained what a unique constraint was and how you can create them using the GUI. Using TSQL to create a constraint is very similar to the primary key and foreign key constraints that you created in this post. You can use either the ALTER TABLE command or create the constraint when you make the table with the CREATE TABLE command. Using CREATE TABLE to Make a Unique Constraint There aren’t any new tables we need for this post, so we’ll create a table that we can drop immediately as soon as we’re done experimenting. You should already be familiar with the CREATE TABLE statement (or follow the link above): CREATE TABLE dbo.ConstraintTest ( TestName VARCHAR(50), CONSTRAINT UniqueName UNIQUE (TestName) ); This script creates…
Read More

Thank You Wendy!

Uncategorized
I honestly don't know when or how I met Wendy Pastrick, but I'm so happy I did. Wendy and I have been friends for a very long time. Thank you Wendy! I think the biggest thing I can say about Wendy is that she builds communities. I suspect no one knows just how much she has done, behind the scenes at her local events in Chicago, at the national and international level, all to get people together to share & learn from one another. Wendy has been one of the guiding lights and foundational persons, and I know, not enough people are aware. For almost literally toiling in darkness, thank you Wendy. Wendy and I have not shared a technical track the way I have with others. Her specialties &…
Read More

Sabbatical!

Professional Development
Redgate Software has a policy wherein every 5 years, employees receive a 6-week paid sabbatical. Well, I'm up to year 11 (I skipped a year my first time), so it's that time for me. First, thank you Redgate. I've loved working for you for 11 years. I'm looking forward to just as many more. Second, I've already written and scheduled a bunch of blog posts, so you'll still be seeing activity here. Third, I'm supposed to completely disconnect, but I won't. I'll be checking email, posts & messages, but I'll be slow on the response. Apologies if I don't get back to you quickly. See you in 7 weeks (I tacked on some vacation time. HA!).
Read More

Thank You Allen!

Uncategorized
I know I can say that I'm a friend of Allen White without getting into trouble. Allen and I have a shared a lot of things over the years and I'm inordinately pleased that I know the man. Thanks Allen. Allen was the very first person, ever, to say to me "Say, aren't you Grant Fritchey? You wrote that book on Execution Plans." To say I was blown away that anyone, anywhere, would recognize me, well, there's simply no way to understate this. Thank you, Allen, for the recognition. Allen has always been one of the clever ones. He was up and using Powershell almost before it was released, or so it seemed. When I was just barely starting to figure out the kind of automation I live by now,…
Read More

Extended Events for Anything But Query Tuning: xml_deadlock_report_filtered

SQL Server
One of my favorite little bits of information about Extended Events is the fact that everyone running a full instance of SQL Server has deadlock information available to them, even if they never enabled Trace Flag 1222 through the system_health session. That captures the xml_deadlock_report which has the full deadlock graph. However, what if you want to capture deadlock info, but, you're dealing the GDPR, and transmitting query values could be problematic? Enter xml_deadlock_report_filtered. xml_deadlock_report_filtered If you do a search for this event, you're not going to find much. Doesn't seem like anyone, including Microsoft, has bothered to document it. This is not going to be a comprehensive definition for all things xml_deadlock_report_filtered. However, I can show you why you might want to use it. This is a port of…
Read More