Steve Jones asked data professionals to cover four days in our lives, so here goes the first post: what I did on Tuesday, July 17th, 2018. Nothing special about this day, just the day that Steve prodded me to take part, heh. My days are radically different, so I’m glad he said to do this four times – otherwise I’d feel guilty about just posting this one without more explanation. (I’ll do this again for July 18th because it’ll look totally different, but then hold off for a few days before posting another.)
4:07AM – I wake up without an alarm and do a round of emails before I hop in the shower. (I looked at the first email-sent time to figure out when this happened, hahaha.) I answer a few client and personal emails – things that are easy to tackle from the phone. After a shower, I walk to my nearest coffee shop, grab a big cup, and come back to my home office to work.
4:45-6:45 – Learning. Read the blogs from overnight – in addition to the 362 SQL Server blogs I subscribe to (OPML – Feedly), I also read HackerNews and a lot of non-technical stuff. I tend to bookmark the very best (or most interesting) stuff on my Pinboard feed, and some of those end up in our Monday newsletters. Microsoft published a couple of cumulative updates, so I post them on SQLServerUpdates.com.
(As I mentioned in my interview with Kenneth Fisher, I try to reserve the pre-7AM time for learning. Today it was reading, but sometimes it’s opening up SSMS and trying to understand something that has been stumping me for a while, or learning how PostgreSQL execution plans work, or whatever.)
6:45-7:00 – Breakfast. A fresh pot of coffee and Stonyfield yogurt. Michael Weston, look out.
7:00-9:00 – T-SQL coding. I need to do design work on SQL ConstantCare®’s new index functionality, so to get in the frame of mind, I design & code an sp_BlitzIndex change I’ve been wanting to make for a while. In building the script for Erik to test the changes, I also update my Mastering Index Tuning class demos about the problems with heaps.
9:00-10:00 – Communication time. I answer a few mentoring emails from SQL ConstantCare® clients. I break some bad news to an upcoming client: they hired us for performance tuning, but while analyzing their data for that engagement, Erik found out they have database corruption across multiple AG replicas. In more enjoyable news, I answer a DBA.se question that happens to pop up in our company Slack room. (We get notifications for new SQL Server questions, so if they look fun, we jump in. That one involved SQL Server on a forklift, so yes, I was intrigued.)
10:30-12:00 – SQL ConstantCare® design. We’ve got a new version of ConstantCare.exe that collects index and query metrics, then tells you what index and query changes to make in order to get better performance. Started designing the business logic for modifying SQL Server’s missing index recommendations and building better ones. While designing it, I review the past sp_BlitzIndex data for several clients, thinking about how I would have built rules to handle their index recommendations. I store my thoughts in a Github issue.
12:00-12:30 – Client call. I’m doing a 3-day SQL Critical Care® with a company next week, but looking at their DMV data, the cause of their really nasty RESOURCE_SEMAPHORE issue was immediately obvious. We talked through it so they could start researching the source of those queries before our engagement.
12:30-1:30 – Lunch. Erika & I headed out to Falafel & Grill. When you work at home, it’s nice to get out and enjoy some fresh air.
1:30-2:00 – Order taking. A few sales prospects emailed in about arranging future work, so I coordinated dates & contracts. I hesitate calling this sales because I don’t do a lot of salesing, just responding and going, “Yep, that’s a good fit, here’s a contract with our next available dates.” The vast majority of our work involves urgent performance emergencies, so we’re usually only booked about 2-3 weeks in advance – really short for a consulting firm. As a result, I’m totally at peace with only having 2-3 weeks of work on the books at any given time. In the past, our August drop-offs scared the hell out of me, but now at least I know to expect it somewhere in here. That’s why I’m doing the foundational design work for SQL ConstantCare®’s next set of recommendation rules now – so if Erik & Tara aren’t billable for a couple/few weeks in August, they can still be productive working on the rule design & execution.
2:00-3:15 – Design continues. Thinking about how I want to deliver index recommendations, I decide that we need to start including a text file attachment in the SQL ConstantCare® emails. I spend more time in sp_BlitzIndex and Github.
3:15-4:00 – T-SQL R&D teamwork. Erik’s working on a new training class module about parallelism, and he’s got a query that exhibits great demo-friendly behavior. I run a few tests with it on the Stack Overflow database and use sp_BlitzFirst to check wait stats, and we have a fun discussion about CXCONSUMER behavior, and how it might not be that harmless after all. We’re seeing some really odd, unexpected stuff on 2017, and I would love to dig deeper by trying earlier versions. (Later, looking at our Slack channel, I can see that he kept going, and I’m looking forward to seeing what he found.)
At the same time, Tara’s examining the data for her client tomorrow, and she spots a T-SQL anti-pattern in their queries. We all talk about a possible fix in Slack, and she starts working on a demo for their findings.
(At this point, you’ll notice that we’ve done prep work for clients ahead of their engagements – that’s because Richie wrote an app for us that sends us the results of diagnostic queries like sp_Blitz, sp_BlitzIndex, sp_BlitzCache, query plans, etc. That way, when we meet face-to-face with the clients, we’re already well-equipped to discuss the problems they’re facing. Steve asked us to write these blog posts so you could see what tools & techniques we use in our day jobs, and while you can’t get that app, you can get the exact same scripts we use every single day.)
Normally I would end my day here – I try to quit work around 4PM – but today is unusual in that it keeps going:
4:00-5:45 – Drive out to the burbs. I live in downtown Chicago, and traffic going out to the burbs is legendarily bad. It takes me 95 minutes to go 20 miles. There are only 2 reasons I head away from downtown: to go to the airport, or to speak at the…
5:30-8:15 – Chicago Suburban SQL Server user group. I was the first speaker to open the new group, and I present there one last time before moving to San Diego in a couple of weeks. Dinner was pizza at the user group.
— Andy Yun (@SQLBek) July 17, 2018
8:15-8:45 – Drive home. Atypically long day for me – if it wasn’t for the user group, I’d have been done at 4PM. See you tomorrow!