Category: Professional Development

Jul 21 2014

Victims of Success

I took part in the PASS Summit 2014 selection committee this year because I was really curious about seeing how the sausage gets made. I’ve seen how actual sausage gets made and I still eat sausage.  Despite a few hiccups and communication issues, internal and external, I think the selection process for the Summit went really well this year. But, there was still some controversy. Being a naturally pushy person, I got involved in the controversy, for good or ill, and subsequently have had conversations with many people about the selection process (which, reiterating, I think went extremely well overall). But, the one thing that kept coming up over and over was a simple question:

How come I/PersonX didn’t get picked?

The easy answer is because you/PersonX had a horrible abstract. But you know what, in probably most cases, that’s not true. Good abstracts by good people didn’t get selected, so what the heck? I think the more complex answer does not go back to the selection committee or the selection criteria or the selection process. Do I think some improvements are possible there? Yes, and I’m putting my foot where my mouth is (or something) and joining the committees to try to make some tweaks to the system to make it better (and really, we need tweaks, I want to repeat, risking ad naseum, the process went well and worked great and I’m happy I took part and I think the outcome is pretty darned good). No, the real problem lies elsewhere, SQL Saturdays.

I’m not saying SQL Saturdays are themselves a problem. What I’m saying is that PASS took on the whole SQL Saturday concept for several reasons, one of which was for it to act as a farm team for speakers. This will be my 10th Summit. Looking back to 10 years ago, while I really loved the event, oh good god have the speakers improved. I remember sitting in sessions with people who were mumbling through their presentations so much that, even with a microphone, you couldn’t hear half of what they said. Slide decks that consisted of 8-12 pages of text (yes, worse than Paul Randal’s slides, kidding, don’t hit me Paul). Speakers who really, clearly, didn’t have a clue what they were talking about. It was kind of rocky back then. I learned my second year that you had to talk to people to find out, not just which sessions sounded good, but which speakers were going to present those sessions well enough that it would be worthwhile. Why were there so many weak presenters? Well, because there was almost nothing between speaking at local user groups and speaking at Summit (I made the leap that way). There were a few code camps around, a couple of other major events, various schools and technical courses, and Summit. I don’t know how the old abstract/speaker review process worked (and I apologize to whoever read my first abstract because I know now just how horrific it was and I’m so sorry I wasted your time), but I’m pretty sure they were desperate to get enough submissions that sounded coherent with a speaker attached that probably could get the job done. Not any more.

Now, people are getting lots of opportunities to present at SQL Saturday events all over the world. And it’s working. We’re growing speakers. We’re growing good speakers. Don’t believe me? Then you go to two or three events in a month, sit through 8-12 sessions, mostly by newer people, not Brent Ozar, not Denny Cherry, not Kim Tripp, and you review them, each, individually, then go back and try to pick the best one. Oh yeah, there’s going to be a few dogs in the bunch, but overall, you’re going to find a great bunch of presentations by a great bunch of speakers. Our farm system is working and working well. But there’s a catch.

Because we have upped the bar pretty radically on all the introductory level speakers (and if you’re thinking about presenting, don’t let that slow you down, everyone starts at zero and goes up), that means the competition at the top (and yes, I do consider the Summit the top in many ways, not all, see SQLBits) is becoming and more and more fierce. That means, my abstracts probably need quite a bit more polish than they’re getting (and so do yours) because there are a whole slew of speakers coming up that are writing killer abstracts. That means I need to really be concerned about the evaluations (despite the fact that I get dinged because the stage is low, the room is hot/cold, lunch didn’t have good vegetarian choices, England left the Cup early, all outside my control) because there are new speakers that are knocking it out of the park. In short, you/I/PersonX didn’t get picked because the competition has heated up in a major way.

In short, a sub-section of the community, defined by those who wish to speak, are victims of the success of the farm team system as represented by SQL Saturday. On the one hand, that sucks because I now need to work harder than ever on my abstracts, on the other, we’re going to see very few instances of really bad presentations at Summit. We’ve improved the brand and the community. It’s a good thing.

Jul 11 2014

Speaker of the Month, July 2014

Another month another bunch of great presentations. I almost don’t want to do this any more. It’s hard. I sit through a presentation and I think, “Well, here’s the winner this month.” Then I go to another presentation and I think, “Well, fudge, now one of these people loses.” Then I go to a third and I’m simply blown away. And now I have to pick. Well, it’s hard. So let me do this, I’m going to declare two winners this month, but only review one of them. Hey, my blog, my rules.

First, I want to award speaker of the month for July 2014 to Wayne Sheffield(b|t) and his presentation Table Variables and Temp Tables that I saw at SQL Saturday 294.

What’s my measure? That I learned stuff and was entertained. Well, I pretty much guarantee, unless you too are an MCM, and none of you can ever become one, ever again, you’ll probably learn something from Wayne too. This was a great presentation. I liked the way he started off with a “What do you think” set of slides to kind of get the audience primed for the material that was coming. It was a good approach, much better in a lot of ways than simply giving an agenda. And the information, scads of it, just flowed out of the presentation. I picked up a number of things that I didn’t know about some of the innards of cardinality estimates on table variables (during recompiles). The demos were absolute perfection. They did an excellent job of making the points in an extremely clear manner. And Wayne told a joke that I immediately stole (sorry Wayne, it was that good), the very next week while presenting (I did give you attribution, afterwards). In short, informative, structured, educational, entertaining, a great presentation.

There were a few issues that Wayne and I talked about. He has too much information to give out in one hour. Because of this, Wayne tends to not stop or pause to ensure the audience got his point and just moves on. It’s frankly a mixed bag on this. I think he ought to pause to ensure people are understanding his concepts (because they’re great), but he has a lot to present, so he can’t waste a lot of time (because his stuff is great). Tough conundrum, but I’d suggest going with trimming some material and ensuring full understanding, but that’s one that people can honestly disagree on. While when he tells a joke, it’s funny, the overall presentation style was just a little dry and slightly monotone. I think that’s just a question of a little practice more than anything. Maybe chatting up the crowd before you start to loosen yourself up will help.

That’s it. It was a great presentation with tons and tons of wonderful information. I’m quite happy I attended it. You should track it down too.

Second, and not second place, just my other awardee of the month, Louis Davidson(b|t)  simply blew my socks off with his presentation on Database Design Fundamentals at SQL Saturday 286. Louis is an MVP, author and frequent presenter, and oh my god, now I know why. It’s like a switch flips and Louis, who is a pretty quiet and unassuming guy, turns into SUPER-PRESENTER! And a tsunami wall of information comes hurtling at you along with quips and experience and stories. It was one of the single great presentations I’ve seen in, well, forever. So if I didn’t bring up that fact here on the blog, I’d be doing him an utter disservice. But… my blog, my rules, he’s so good, I didn’t want to just hand him the title and be done. It wouldn’t be fair to all the other amazing presentations I saw that they were upstaged by a consummate professional like Louis.

Please people, help me out, do really horrible presentations, at least some of the time, so I don’t have to actually think about this stuff. I’m lazy and you’re making me work.

Jul 08 2014

Worst Day of a DBAs Life

Red Gate Software is running a campaign around coping with the worst day of a DBAs life. We’ve been posting some really fun stories with, I hope, a kernel of useful information inside each. Chances are, if your DBA career has been like mine, your worst days don’t involve explosions and car chases. But now they’re asking for people to write up stories, what was the worst day in your life as a DBA. I know, I know, first world problems, right? Regardless, I have yet to put a company out of business or kill anyone with any errors I’ve made, although I’ve worked at places where either was possible. But the one day that just stands out, well it started about three weeks ahead of the bad day.

I was working for an internet startup. I was very much still learning the ropes as a DBA, although, I had helped design a system on SQL Server 7.0 that was collecting about 1gb of data a day. Back in those days, that was big data. But, frankly, I wasn’t doing the monitoring correctly. I was doing a lot of manual checks and manual maintenance, stuff I should have taken the time to automate. Live & learn, right? Anyway, because I was taking a lot of time out of each day to do maintenance and run checks on the systems, I wasn’t spending lots of time supporting the development teams. One day, one of the managers came in and said, “No more maintenance. Things should be fine. Spend time on development.” And he was serious. I argued and lost. So I started spending a lot of time doing development and let the maintenance slide. Fast forward three weeks, things had largely been stable, but, I didn’t have monitoring in place, so I wasn’t noticing that we were running a little hot on transactions. The transaction log was bigger than it had been. And then disaster struck. The backup drive filled. I didn’t notice. Transaction log backups started failing. I didn’t have alerts. The log drive filled, all the way, and our 24/7, zero downtime web site went kablooey.

It was at 2 in the afternoon or something, so I, and my fellow DBAs were right there. We immediately tried to backup the log, but it wouldn’t backup. We tried adding a log file. Didn’t work. Then we started getting creative. We tried every possible thing we could think of. Some of them failed quick, so we tried something else. Some of them took hours to fail, making us think we had fixed the problem. It took us 48 hours of failed attempts before we finally admitted defeat, went to the last good backup and restored the database, losing about 12 hours worth of transactions. It was a nightmare.

The good news was, our directive to stop doing maintenance was cleared. We immediately went about setting up alerts and other things so that we wouldn’t get surprised like that ever again. It wasn’t fun, but it was a great learning experience. Plus, all the troubleshooting for 48 hours straight provided excellent camaraderie within the team. That said, I’d rather have avoided the whole thing, and could have with proper monitoring and alerting.

Jul 03 2014

Reflections on the 2014 PASS Summit Selection Process

Oh we are a bunch of high school kids at heart. Maybe high school never ends (and there’s a nightmare, god I hated high school). But, there’s been drama about the 2014 PASS Summit sessions and the Selection Committee’s work. I was on the committee. I worked as a part of the team responsible for rating sessions for the Azure track (said track is gone, more on that later). As self-serving a statement as this is, I think we did a good job. Further, I think the process worked. You can read the official explanation of the process here. Amy did great work and deserves your thanks. All the volunteers who reviewed over 900 submissions from more than 300 people, ON THEIR OWN TIME, FOR FREE, also deserve your thanks. The vitriol directed at the PASS organization over the outcome of this selection process is not directed only at the Board. It’s also directed at the volunteers. And, as a volunteer, that sucks.

The team I worked on rated, I forget, 50 sessions I think. We had to read through them and give them a score based on several criteria. We also had to write comments on each and every session. I was dinged by HQ for not writing a comment on a session that I gave 5′s to on the ratings (so I commented something like “Can’t wait to see this at Summit”). We were only given 10 slots to fill, so that means 40 sessions got kicked to the curb. That’s a lot of people who didn’t get selected. And not getting selected sucks (yes, I do know, I’ve been rejected by a number of events this year, big ones, even ones I’ve spoken at previously, not whining, just pointing out that I don’t have a secret method for getting accepted). Our track actually got eliminated and the sessions that we selected were distributed to other tracks. Also, a couple of sessions we rated highly didn’t do so well when the speaker scores were applied, so there was some shift there (one thing PASS could improve, give us some indication of the secret sauce there, we know there is one, but a little understanding of how it’s applied would help). But over all, the sessions we rated highly, got selected. Congratulations and well done to those speakers. Just look at the people presenting, many for the first time. That’s going to be an absolutely awesome event. And once more, thank the volunteers for doing all that work.

So, some of you are now thinking that, “Oh, Grant’s on the side of PASS” (well, actually, yes, I am, so should you be) “Grant has been told to be nice and play good and not be critical” (even though I’ve already made a criticism about the magic numbers and I was tweeting almost literally threatening messages this week) “Grant got selected so he’s being a <insert bad name here> about the whole thing” (I may or may not be a <insert bad name here> but I don’t agree that I’m being one about this) or, maybe you’re on the other side “OMG! He’s criticizing PASS in any regard, The HUMANITY! Have you at long last sir no decency” (no, not really).

Remember those comments, that I had to write for every abstract, including the great ones? I put a small critical review of the abstract in every one (OK, not the one that I gave 5s to). I said what was wrong with the abstract in my subjective opinion. And let’s be perfectly clear about that (channeling President Obama), they’re my opinions. If I thought you didn’t define the problem space your presentation was meant to address, I said that. You disagree? OK. If I thought your very clever and witty title seriously detracted from the clarity of what the session was about, and it wasn’t that witty, I said that too. You’re the wittiest person you know and everyone says so? OK. My opinion may not jive with yours. But, it’s the one thing I’ve seen everyone who has ever been rejected by the committee ask for, “Tell me what I can do to improve.” OK. I did. At least in my opinion. On every single abstract (except that one).

PASS didn’t release them.

And then, PASS did.

The volunteers (unpaid, remember) did the work, and now it gets to see the light of day.

This brings up a number of points. First, when I got rejected by those other events, did I get a reason for my rejection? Nope. Other events just reject you, thanks for playing. I think PASS, which is all about community, should be different. We should tell people why, not just that there were higher rated sessions, but what they can do to improve. I’ve talked to people in the know, not all the comments provide that kind of information. I think we’ll get better next time. Second, peoples feelings are going to be hurt by these comments. Yes. Yes they are. Suck it up buttercup. You want to know what you can do to improve so you can get selected, but your abstract is absolute perfection (in your opinion), so how dare someone else suggest that it’s not worthy of inclusion, blah, blah, blah, We’re going to see lots of blog posts where people disagree with these comments and that could reflect back in some negative way on the organization. I suppose so, but if we’re going to be about community and we’re going to try to raise up new speakers, we’re going to have to be able to deal with some degree of friction. That may even come from experienced people irked that they didn’t get picked. Everyone has a bad day. Again, I think we can weather this. Finally, the different teams and individuals on the teams probably gave substantially different levels of comments with varying degrees of quality. Some of the comments are just going to be useless. Further, My opinion probably doesn’t jive with my teammates in every regard. Maybe a team didn’t put critical comments in at all (although they had to put in comments). Yes, these things are going to be uneven, maybe even contradictory. OK. Again, cope.

This blog post once started off as a rebuke of the selection process around those comments. It’s not now. I want to repeat, one more time, I think the committee did great work and selected an awesome set of presentations that will make for a wonderful Summit. Thank you for all your hard work. And thank you, Amy, for doing a great job organizing what is a daunting task. And thanks for releasing the comments.

Jun 30 2014

The Curse of Working With A DBA

noI no more than finished my rant from last week than I started thinking about all the reasons why a healthy chunk of the reasons that developers want to bypass relational database is not the horror of the relational database itself, although, that’s there. No, a very large reason why is the DBA.

We’re on a blog called The Scary DBA. I earned that title, well sometimes. Sometimes I got it and I wasn’t sure why. However, it’s perfectly in keeping with how many people view their database administrators; grumpy, obstructionist, slow, difficult, control freak, etc.. There are even jokes about it, “What’s the DBAs favorite word? No!” And for those answering “It depends” that’s two words.

I understand why. In large part it’s that phone in your pocket (used to be a pager on your belt, I’m old). That darned thing can go off any time night or day. It tends to make you very gun-shy. You start doing anything you can to keep that thing from going off. And developers, holy moly, they want to change things. They want to introduce new tables and new queries and they want to do it all really fast, faster than you can possibly review all that code, and all, ALL, AAAAALLLLLL, that code needs to be reviewed before we can let it unsettle our production servers. No.

And developers get crazy ideas in their heads sometimes. Maybe it would be easier to put the queries in the code rather than in stored procedures? What? How the heck can I review all the code too? No.

Developers also start thinking to themselves, you know, most of this T-SQL code could be generated using other code. Wait, that means even more T-SQL generated even faster, and generated by a program, and I can’t review that program, or it’s code and you want to put it into my production server? Are you smoking something over there? No.

CLR? Ha! No.

ORM tools? Have you seen that T-SQL? Hell no!

How about other tool sets? Maybe an object database would work here. We may be better off using unstructured storage for data collection in this situation. ID/Value pairs might work well for this application. No, no, no and no again. Just in case you think of something else, no.

Gee, I’m sure if I were a developer I’d be perfectly happy with this approach. I’ve no doubt as developers introduce even harder subjects like agile development, devops, and other things in the future the responses will be just as nuanced. In short, I’d be doing anything I could to bypass the DBAs too.

So, what do we do about it as DBAs? Change. Use the word “Yes.”

We need to recognize that the business is changing, fast. That means that the applications are going to change, faster. We, DBAs, must become enablers. We must create processes and methods that smooth and speed the deployment process in order to provide lots of opportunities for automated testing because you’re not going to review this code and you can’t just stand in the way. We need to adopt to and adapt the development and deployment paradigms used by the developers. We have to start treating databases, as much as possible, like code. We need to have our code in source control along side the application code. We need to be at the stand ups. In short, we need to change what we do and the way we do it. We can’t just say no. We need to say yes. The goal is to get in with the developers and influence through assistance, not just stand in the way.

Is it more work? Yes. Is it going to be hard? Yes. Will we have to go quite a long ways to convince them that we’re not just going to say “No” again? Yes. Are there damned good reasons for us to make these efforts so that someone who loves and protects the data and will be able to provide special skills not developed by most programmers? Yes again.

See, it’s easy. Try it.

Jun 18 2014

The Curse of Relational Databases

Let’s face it, none of Information Technology is easy. Oh yeah, there are those few geniuses that have an absolute grasp over some small aspect of the stack, or those other geniuses that have a very shallow knowledge level, but understand the entire stack. But the stack itself, it’s vast, deep, wide, utterly unfathomable. So what do you do? You cheat. You take shortcuts. You ignore things you don’t like/understand/appreciate. And then there’s all the things you just don’t know. Or, you cheat another way, you get experts that have drilled down on a particular technology so that they’ll provide you with the knowledge you need. Ah, but then you have to listen to them and what happens when your local genius (deep or wide) doesn’t agree with your hired gun? Do you override your local person for the hired gun (I’ve seen this happen a ton where consultants were favored over in-house), or do you go with your local person (I’ve also seen this where the local person who has solved all the problems before may be over their heads now, but they’ve always been right and are therefore trusted)?

I just read (and I mean I finished about 90 seconds ago) this really interesting article on The Curse of the Excluded Middle. I won’t even pretend to you that I understood all of it. But, I did get a pretty fundamental concept out of it, this programming stuff is very hard, we’re going to take shortcuts to get through it, and those shortcuts come with a cost. The argument being put forward isn’t to somehow find a magic solution. It’s simply to acknowledge that there really is a cost, maybe even a cost you don’t completely understand. Further, that cost, and especially your lack of understanding of it, will come up and bite you on the behind.

Which brings me around finally to developers and databases. Relational databases are a pain the bottom. They really are. Speaking just of SQL Server (where I spend most of my time) you have to work with a ridiculous, archaic, language, T-SQL, in order to manipulate the data. And the rules of normalization, yeah, we can all learn them, but applying them makes every single aspect of coding harder. Plus the language lets us do things that it then interprets in horrendous fashion. Oh, and don’t forget all the obscure and weird maintenance and configurations that you have to go through to keep the silly servers online and functioning correctly. Then there’s the whole object/relational impedance mismatch thing to chew on our behinds even further. In short, I completely understand why developers would like to burn the entire edifice to the ground (come see one of my presentations when I talk about the “data persistence layer” that a particular dev team wanted to build). And all that is just the technical side of this mess. I’m not even going to address the personnel issues that come with the different focuses of responsibility between a developer and a DBA.

So when the developers bring in an Object Relational Mapping (ORM) tool or they explicitly attempt to slap out at DBAs by going after a NosQL database (and no, despite the new twist, it means NO F’ING ESSQUEELL, instead of Not Only SQL as many are saying now), I understand why they would do this. It short circuits all the issues. We get around the problem. We speed development by eliminating that thing that we didn’t completely understand and certainly didn’t like and…. Hang on… Isn’t there a darn good chance we’re digging a hole here?

Yes.

Don’t get me wrong. I see the need for unstructured data stores, ID/Value pairs, speed over consistency, speed over durability, the need to move fast because your competition is sure as heck trying to move fast. So NoSQL databases serve an absolutely valuable purpose and used correctly fix unique and difficult problems. A well structured ORM properly applied absolutely saves development time. But there’s this nasty little surprise hidden behind the need, the sometimes seemingly desperate need, to completely get rid of relational storage. That surprise? Relational storage actually works and works well when applied to the appropriate problems in the appropriate ways. It provides a means of collecting information fairly quickly (although not as fast as many NoSQL databases), storing it efficiently (although, maybe not as efficient as some object databases), and returning it to the users on demand (and here relational does stick out again). And does it all in on place, not one for collection, another for reporting, or some of the other strange perambulations I’ve seen people going through with some NoSQL implementations (again, not all, some are awesome, but many are horrific).

About twice a year I get to read a “death of the DBA” article that points to a technology or process or tool that’s going to eliminate the need for those nasty, ugly, difficult, relational databases and those freaks who try to keep them online and available. And about twice a year I see lists of the most needed workers in IT and guess what’s almost always there, yep DBAs. The fact is, relational storage does work. And instead of trying to eliminate it, or the DBA, or the code necessary to interface with it, embrace the stuff and learn to use it, or hire someone who actually knows how to use it and then listen to them. I’ve just seen too many places where the need to eliminate relational storage and DBAs is driven by one of two things, I have a shiny new hammer and everything is a nail, or, databases and DBAs are a pain because they make us do stuff we don’t want to, so let’s bypass them. Those are almost precisely the wrong reasons to go about moving to a NoSQL implementation, because you’re going to be ignoring stuff, as the Curse of the Excluded Middle talks about (and I know, it didn’t talk about databases, I’m extrapolating, hang with me here), and the things you ignore, or worse yet, don’t know about, are going to hurt and may hurt badly.

Jun 06 2014

Speaker of the Month, June 2014

It’s not like I can’t find plenty of great presentations here in the US, but, while I was over in Belgium at Techorama I checked out several of the presenters there. They were awesome. This was the first ever Techorama. It’s a developer focused event, but there was stuff there for data-centric people too. They had a great international collection of speakers from all over. The venue was a movie theater which was a lot of fun to present in, although may be a little too comfy to watch presentations (I fell asleep in one, I sure hope I didn’t snore). It was such a great event that I decided to pick my speaker of the month from there. I saw a bunch of very good presentations (even the one I fell asleep to was good, the parts I saw), but one stood out for me, both because of the topic and the presentation of the topic. I’m giving my speaker of the month award to Tiago Pascoal (b|t) of Portugal for his presentation at Techorama, “My Code is Ready, Now What.”

Tiago is a Microsoft MVP for Application Lifecycle Management (ALM) from Portugal, or, as he himself put it, “on the ass of Europe.” Pardon the language, but that was funny. I loved watching Tiago present. He was really funny, which was excellent because discussing ALM can be pretty dry. He said several times as he was presenting stuff “I should get a monkey to do this for me.” It was great. I loved the way he discussed things, stating matter of fact things like, regarding code in source control “It’s 2014, everyone is doing this now.” and his ease and manner of just assuming that, of course, the database is treated the same way. I like the way he talked about provisioning, comparing it to pets vs. cattle. Do you want to have to pamper and groom to get a server online, or is it just one more cow in the herd? Great stuff. I also loved how free and easy he was with typing. He demoed in a raw, live manner and got it all to work too. His slides had great pictures that both made his point and were entertaining. I really loved it. His demonstration of Octopus was so smooth I’m actually pretty jealous.

I don’t have much to offer Tiago for improvements. I loved his slides, but the look and feel within them wasn’t completely consistent. Minor nit, but I have to say something. I loved how he typed through the demos instead of having them canned (which I do), but it did sometimes slow down the flow, just a little. Again, minor nit. The presentation was just that good.

I’ve no idea where he’s presenting next. He is on Lanyrd (yay), but doesn’t having anything upcoming. I can heartily recommend going to see him speak.

May 02 2014

Speaker of the Month, May 2014

Whoa! Another month gone by already? I guess I better pick a speaker of the month then. I went to several events this month, so selection was difficult, getting to see so many great speakers. But, one stood out in my mind, partly because he’s the least experienced speaker I’ve seen in quite a while. But his inexperience didn’t show. Speaker of the Month for May 2014 is Andy Yun (t) and his presentation Every Byte Counts.

The session was about using the right data types. You’d think this is self-obvious, but from the way Andy packed the room along with the attention and questions from the attendees, it’s clearly a topic that needed attention. I really liked how he did a presentation on the problem space before showing his goals for the session slide. It worked. He did a couple of good little tricks, leading people to make a poor choice for the data type with vacation days and then explaining why. It was a great bit. He also did a fantastic job of repeating everyone’s questions. It was a small room, but it was packed, so the speaker needs to do this (and I need to get better at it). He had a great bunch of examples that worked well to illustrate his main points and I really enjoyed the whole thing.

Areas that he could work on to move this up a notch? ZoomIt. ‘Nough said. While he presented everything extremely well in clear, easily understood language, it was a little fast, so he might want to check every so often if everyone is still within him. And Andy, breathing is important. You should do a little during the presentation.

It was a great experience, especially when you consider it was his second time presenting. I know for absolute fact I didn’t do that good my second time (or 10th) and I’m frankly shocked by the number of experienced speakers who wouldn’t have done as good a job as Andy did. It was a great presentation and worth checking out if you get the opportunity.

Where is he speaking next? I don’t know. No blog. Not on Lanyrd. He’s just going to appear somewhere, so be ready.

A couple of honorable mentions this month. I got to see Tim Ford do a great experiment with a presentation on query tuning. I think it worked well, but I know he’s going to modify it, so I’ll wait for the finished product to give him the speaker of the month. If you haven’t seen Kevin Kline speak… you’re just doing it wrong. Go get it fixed.

Apr 15 2014

SQL Server First Aid

10884793236_16744ca395_mIf you take basic first aid, say a CPR course, you’ll learn a handy mnemonic for the primary assessment you have to make, A-B-C. That breaks down as Airway, Breathing, Circulation. Is there an open airway so they can breathe? Are they breathing? Do they have circulation, a pulse, are they alive in short. I recently took a two day course on wilderness first aid (on top of CPR training and first responder training and basic and advanced first aid training and Scout training and Scout first-aid training and I’m sure I’m forgetting some) that added to that, D-E. We now have Disability and Environment. In short, just how responsive is the person or do they have the possibility of spinal issues? What’s the environmental situation, lieing on cold ground, in the rain, on a boulder, in a crevasse, etc. And that’s just for the primary assessment. Then there’s the secondary assessment.

I’m not going to attempt to regurgitate the class here (go here if you’re interested). But it got me thinking, could we come up with a primary assessment for SQL Server that is also predicated on simple concepts that we could use to focus our assessment when dealing with SQL Server issues? The obvious answer is yes, but then, how well will it work? I’m pretty sure the shockingly simple, while simultaneously complex, ABCDE for assessing patients went through a lot of rounds to arrive at the current version. So, here’s my idea. I’m going to do a pass at this. I’ll lay out my first thoughts on coming up with a primary assessment, and then, I’d love to see others take it and run with it. Maybe we can turn it into a WIKI or something. But I can see it as a foundation for a more systematic approach.

Let me lay a few ground rules. First, this is the primary assessment. This is the “let’s see if we can keep this person alive” moment. They may have tons of cuts and scrapes and messed up hair and horrible taste in clothing. We can get to all that later. Right now they’re laying on the ground and we need to determine if they’re napping, getting ready to start screaming, unconscious or just dead. So, let’s keep that concept in the front of our brains as we think through what we need to get the patient/server away from FTD (“fixin to die” I love the black humor that EMTs and police have) to either completely alive again or at least limping along. No query tuning (as much as I love it) or questioning people’s database design choices (as silly as they may be) or even finger pointing (yet).

Second, let’s try to stick within the mnemonic as much as possible. So ABCDE. If we determine a need for an F & G as part of the initial checks, fine. And, we have the whole secondary checks to do so there can be any number of fun mnemonics or other memory devices or whatever. But we’ll leave that for the nonce. Primary checks.

Here’s my first pass (I’m skipping survey the scene, the real first step, maybe that’s wrong, let me know):

A: Availability – Can you ping the thing? Is there a network around it that is online such that you can get to it at all? If you can’t, chances are no one else can either.

B: Basic Connectivity (yeah, it sucks, see above) – Can you log in? Can you use the DAC? You can see the server, yes, but can you get to it?

C: Circulation (sucks even worse) – Are there blocked processes (yeah, it should be “B” but that doesn’t feel like the right order to me)? Are you able to query the system and get a response?

D:  Database – Are the databases online? Are there issues around databases? Did you run out of space on the log or data file?

E: Execution – Are we looking at some sort of query issues? Permissions, performance, etc., that is affecting general availability.

Yeah, I know. This is pretty weak stuff. I’m absolutely just putting thoughts into words and letting you see the process as it unfolds. Remember, as a DBA, chances are very good that you’re a first responder. You need to know what to do. Show me where I’ve gone wrong. Feel free to write your own blog post in response. Create a presentation with this idea. I don’t care, just let me know what you’re doing with it so I can try to update and expand on the idea. Could we incorporate existing resource such as this awesome book? Anything and everything. This is an open idea that I’m passing on to see if it has legs. I think it might, but then again, I couldn’t believe that everyone didn’t own an Axim.

Apr 14 2014

Sharing a Good Idea

I posted earlier about my experiments with Microsoft Curah!. (yes, technically the period should follow the exclamation since the exclamation is part of the name, not the end of the sentence) Evidently people actually read this blog because it inspired Stephen Bennet to start putting together his own curations and collect them on his blog. I think that’s a pretty interesting idea. I might try it myself (after I get back from SQL Intersection). Stephen’s Curah! so far.

Oh, and I kind of dislike the name. Curah! Just typing it I feel like I should be excited except I’m not. Anyhooo…