Thursday, 21 March 2019

Presenting

It seems quite fitting that my last post, dipping into the cookie jar paid reference to my battles with anxieties and yet this post is all about me presenting for the first time, as I did last week at the Manchester and Leeds Data Platform User Groups. OMG I still cant believe it!!!!

Anyway.

It wasn't that long ago that I wouldn't have been able to achieve this, and not for the lack of wanting either as it's been a bit of a dream of mine for a long time. So as you can imagine I'm feeling quite elated by the whole experience! I took an awful lot from both sessions too, met some amazing people, had some great discussions about all sorts of things and also took away some great advice and feedback about presenting in general and my session too.

So for this post I thought I'd jot down some of the things I learnt about presenting and hopefully, if you're contemplating doing it some time, it might help a bit.

Nerves
My dad told me many, many times that if you don't feel nerves there's something wrong with you, you're just not human. He's not wrong, and if I'm totally honest as I headed over the M62 motorway on that Wednesday afternoon towards Manchester I couldn't help but think, "WHAT ARE YOU DOING?!?!".

I've come to not exactly embrace nerves, far from it, but I certainly accept them for what they are. If I couldn't care less about something then the chances are I wouldn't be nervous at all but when something means something, there they are. With that in mind I try not to be too concerned on trying to overcome them but instead use them to ensure I've prepared as well as I can and that I'm focused on what I'm trying to achieve, I guess it might be called "channeling the energy" if you're into that sort of thing.

TL/DR: Everyone gets nerves, so don't try to battle them and instead use them to focus/channel that energy into remembering what you're achieving.

Practice doesn't make perfect, but it makes you much better.
Things go wrong, fact. Preparation is without question key but there's always something. For the second session I forgot a key prop (chocolates) that I use to make a joke about bribery being such an evil word. I'd prepared everything, done the session (with chocolates) the night before but yet here we are.

I didn't even realise until the slide came up, talk about a "DOH" moment but then again, what could I do? So I apologised to the audience, made a mental note to not do that again (I promise), and carried on. The lesson for me was that it's impossible to prepare for every single little eventuality of "what could go wrong" so instead I focused (yeah, that again) my preparation on the good bits; I knew my slides (mostly), knew the code sections and also my lines (that's how I sort of viewed them but instead of being too rigid tried to develop a bit of flow and allow a natural conversation).

Above all, prepare best you can, don't fear the what if's and if something doesn't go to plan, don't beat yourself up, there's next time.

TL/DR: Don't waste time fearing mistakes, they happen to everyone. Relax. You know your stuff.

Self-Doubt and Imposter Syndrome
Another fact, I've never been to a session where the presenter knew everything.

It's true, but yet my old mate imposter syndrome was determined to make me question absolutely everything, even just standing up there. I went through it, seriously I did. Do you think you're some sort of expert? What happens when someone asks you a question and you don't know, what if somebody spots a mistake, what if you've got no idea what you're talking about?! You don't belong up there!!!

Oh yeah, that shit is real.

Imposter syndrome is nasty. It's as if your very own self becomes hell-bent determined to make you doubt pretty much everything that you're trying to do and it's going to come at you at every imaginable angle to try to stop you. Lovely isn't it?

Unlike nerves this is something to overcome, do not accept imposter syndrome.

I don't know or pretend to understand the psychology of it abut what I do know is that there is nothing trying to get in my way and stop me from achieving something - apart from my own self-doubt. A coach of sorts once told me that in those situations remind yourself that you have every single right to be where you are, you've done the hard yards (or metres) so look back on them and know you've earned it. [another cookie]. I love those words (thanks Mr Fisher).

Another thing that sprung to mind, and I can't remember if it was Paul Randal, Gandalf or some other wise old soul who said to remember that everyone who you look up to has been in the very same place where you are now. They might be very established speakers but at one point, they were right where you are now. I took a lot from that.

To lead off that; nerves, self-doubt, imposter syndrome, they effect absolutely everyone. The reason why you are where you are is because you've earned it, now is your time.

TL/DR: Your own self-doubt is yours, so own it, you're exactly where you deserve to be. You've done the hard bit, self-doubt doesn't know what its talking about.

Breaking the ice
The first five or so minutes is a quite a rollercoaster. I turned to humor, for Manchester I had a joke about it being my first time speaking, only that was a lie, it wasn't like I'd driven over and words started coming out of my mouth. I also have a particular slide, my "about me - part two", that shows I'm quite happy to poke fun out of myself. I quite like laughing and to date, it's always got a bit of a laugh from the audience as well.

The fun filled game EVERYONE is playing!!

For me the first few minutes are a great opportunity to give a pretty informal introduction to who you are and what your session is about. After the intro I used a bit of a quiz element (I sort of borrowed this idea from Paul Andrews Azure Icon Game), "fun facts about guillotines" to promote a bit of audience interaction. That really helped, it was very light hearted, a bit of a laugh (if you can laugh about guillotines), and it just broke the ice a little more.

TL/DR: The audience are real people. They know and appreciate what you're doing, they're there to support you so get to know them a bit.

Learn from the experience
Doing two sessions on two nights actually turned out to be a great decision, despite a lot of self-doubt telling me it was a ridiculous idea. I got a lot of feedback after night one so being able to put that into practice straight away was a big help, wish someone had said don't forget the chocolates.

I also got a lot from the questions being asked in the session and actually a couple of them I made mental notes to include the following night (cost - optimisation relationship). They were really excellent points and for me, improved the session for next time. Leeds was no different, I got asked about what query tools I use so when I next present the session, there's a slide on that (with some new bits I've learnt about recently)! 

TL/DR: Take all the learning points that you can from the experience.

Enjoy it
Yes I had nerves, yes I suffered greatly with imposter syndrome, yes I was absolutely dreading it.

At the same time I rehearsed, I had an approach in mind, used some bits and pieces to gradually get into delivering the presentation. I didn't aim for perfection, I really didn't need the pressure. Some minor things went wrong, I forgot a couple of bits but hey, these things happen, mental note, carry on.

TL/DR: We get the best rewards when we go out of our comfort zone and "DO IT".

I'm no expert, full stop, but I learnt stacks from what was an absolutely brilliant experience. Am I glad I did it? Too right I am and now I'm focusing on the next step! Is that a scary prospect? Too right. Is that, or any element of self-doubt going to stop me?

Hell no.

Tuesday, 12 March 2019

Dipping into the cookie jar.


This post going to be a bit of a personal story, in this case very little to do with SQL Server but when I read the topic of this months T-SQL Tuesday I felt very compelled to write something. Over the last week or so I've reviewed and rewritten quite a lot of it, the first drafts were way too lengthy (yup, even more than this!). This is the final version that I am writing out, and I'm sticking to it!

10 years ago I suffered my first anxiety attack.

I was in a meeting at work at the time; became very dizzy, nauseous, numb and had horrific stomach and chest pains. I remember trying to control my breathing which became very panicked and I had an overriding feeling that at any second I was going to black out. I didn't, I managed to leave the meeting but walked into the door frame as the dizziness became quite severe. I don't remember much else from that day.

I know a short time later, maybe the next day, at the doctors I was told it was an anxiety attack, which was a bit of a relief at the time as I was convinced it something "serious" - at the time I was sure I was having cardiac issues and hadn't even contemplated, or been aware of anxiety. Despite the tablets that I was given (which I didn't take for long) and being told to take some time off (I went back almost straight away) I pretty much filed it away and carried on, until the next attack happened.

This occurred on the downwards escalator in a local department store, same symptoms but I remember panicking much earlier. Same again, I don't remember much else apart from booking in again at the GP's.

The next couple of months were extremely difficult. I was given medication that made me feel ill, referred to counselling sessions that on the whole I viewed as being quite upsetting and each day became progressively more of a struggle to get through than the last. The attacks came and went, sometimes very mild, sometimes not, but they were there and all the time I was surrounded by feelings of weakness, guilt, denial perhaps and if I am honest, some degree of shame too.

I don't know when the tipping point arrived or indeed what originally sparked it, in truth it was more of a progressive process but what I can write about was a train of thought that I slowly began to realise more and more. This is one of my "dipping into the cookie jar" moments.

You see whilst anxiety had left me feeling like I was a weak person and although the days felt like a struggle here I was day after day fighting it, albeit without fully realising but it's true, every day I was getting up and doing what I needed to do to get through it. Inner strength I came to understand isn't something that we know is there, at least not until we really need it and even then we might not fully realise it.

But realise it I had, I started to draw on it and bit by bit I began to see and understand the things that I needed to change. This newly found "clarity" is what actually inspired the name of this blog; it took some time but now I had accepted where I was, I understood that is was perfectly okay to not be okay but I also knew where I wanted to be and how I was going to get there.

A big part of that process was drawing upon that strength to have the courage to speak to others, those close to me. To use the cookie jar analogy; I needed help to open it, perhaps I needed to have the top loosened for me, and I certainly needed help to reach those cookies that were at the very bottom of the jar, but that's what we did.

Some significant changes were indeed made, there were many ups and downs for sure but over time things got much better. I became used to stepping out of my comfort zone because at times it was the only way, sometimes needing that a gentle nudge of encouragement and offer of support. It always humbles me to witness how supportive people are when it's just in their very nature, every day you'll see people helping others with their challenges. And I always say to people not to trivialise the challenges they're going through; whether its seemingly big or seemingly small a challenge is exactly that, a challenge.

Over the years I've faced many things, not least when exactly a month ago today when my Dad passed away. But through everything I've learnt that all of us, we really are a lot stronger than what we know. Sometimes we need to draw upon both positive and negative experiences but there's always that inner strength that lies within us. Sometimes we have to reach out; sometimes for the help, sometimes to help somebody else but between us, we really can get through anything.

Thank you for reading

Monday, 4 March 2019

Speaking in March

Most people who know me know of my love of talking and also my love of working with SQL Server. Next month I'm combining the two as I'm readying myself for speaking at a couple of local-ish user groups in March (meetup links further down) with the rather awesomely named session, "Guillotines, Sat-Nav and the Query Optimiser"

Intrigued..? You should be!

The magnificent two date world tour kicks off with the Manchester Data Platform User Group on Wednesday the 13th of March and the next night we head back to sunny Yorkshire for the Leeds Data Platform User Group meeting on the 14th. I say "we", just to clarify there's no tour bus or anything, it's just me travelling back and forth on the M62 whilst listening to and shouting at TalkSport presenters.

Anyway, this will be the first time I've spoken at a SQL event or meeting so naturally it's a pretty scary prospect but at the same time I genuinely can't wait. It's been an aspiration of mine for quite a while so actually getting round to doing it feels like quite an achievement, or at least it's getting there.


So if you'd like to know a little bit more about guillotines (who doesn't?!), query optimisation and you like pizza then why not head over? If you've never been to a user group meeting before then here's an ideal opportunity to see what they're all about. It's very easy for me to list the reasons why you should (nice people, guillotines & pizza) but seeing for yourself is without question the best way so go ahead and get yourself signed up.

I'm really looking forward to meeting everyone there, huge thanks to the organisers of these meetings, I hope you know how genuinely appreciative everyone is for these events and see you all soon!

Here's the links:
Manchester Data Platform User Group, Wednesday 13th March.
Leeds Data Platform User Group, Thursday 14th March.

Friday, 4 January 2019

2019

I have some mixed feelings about 2018 so thankfully this post has nothing to do with looking back, not in the main anyway, but more around what I'll be doing in 2019.

First, there's blogging. I didn't get round to getting anywhere near the amount of posts that I wanted to last year which is disappointing. I've always taken great enjoyment in writing so that is something that I want to change right away. Firstly I'm moving the more technical posts over to DTA IT, it makes sense and leaves SQL Clarity to host more of my thoughtful posts - or waffle as I like to call it. I've also enlisted some much needed help on the blog/community side of things which will undoubtedly make masses of difference.

Then there's speaking. I've always enjoyed talking about SQL Server and just before Christmas put in to speak at a couple of user groups next year; Manchester, Leeds and Nottingham. It's something that I have intended to do but had never taken the jump, now, I cannot wait. The session is about the query optimiser with a side of guillotines and satellite navigation - really, come along if you'd like to know more.

Training others is something I've always been passionate about and through DTA I'll be kicking off an exciting new project in the next couple of weeks. I don't want to give anything away now but it very much relates to a back to basics approach to training material that I'll be offering. The courses through DTA have also been revised and reduced to three core elements; administration, performance management and querying - all of which are aimed "from the ground up".

Mentoring deserves a mention as it's something that has been on my mind for a while. It probably warrants a separate post but in the meantime what I will say is that whilst it's an activity that I will still be undertaking I'll be working to a much more structured approach and I've also learnt to step away when it isn't working, this should allow me to spend more time actually mentoring!

For my own development I'm focusing on a few things, Bob Wards Pro SQL Server on Linux is a highly recommended purchase as the Linux space will become much more critical for SQL Server; as will containers and Kubernetes - I also recommend Chris Adkins blog post to get you going on that front.

There's an awful lot to learn and even more to do but I'm very focused on having a very successful 2019, and I wish anyone who happens to read this the same, all the best!

Thursday, 11 October 2018

SSMS 18.0 - Actual vs Estimated Rows

Last week Microsoft released SQL Server Management Studio 18.0 into public preview, here's a link so you can read about the new and improved functionality it offers.

One significant change is the addition of actual vs estimated row counts onto the showplan operators in execution plans (only actual, not estimated...which kinda makes sense).

Here I'm running a very simple bit of code on some DMV's (namely exec requests and sessions) to demonstrate this addition.

Here's an execution plan in a previous version of SSMS:

But in new SSMS we get some extra info:

If we look at the Table Valued Function on the far right of the plan (because that's where plans start) we can see a time statistic (0.00s) and under that "69 of 70 (98%)", hovering over the operator to bring up the tooltip shows what the numbers mean:


We can see here for this operator that the actual number of rows is 69 whilst the estimated was 70 (a 98% accuracy) so any skew in row counts are now much more visible, this is really useful when it comes to really big numbers in execution plans.



In this example (from the same query) we've got the actual number of rows displayed correctly (2) but its estimated value doesn't match what is seen in the tooltip (69 vs 8.3666). Worth noting that the values do get rounded so 8.3666 would be displayed as 8. 

Originally I thought it had got the 69 in the tooltip wrong but in looking for a bug I'd actually missed the glaringly obvious; because SQL Server has to times rows by the number of operator executions; 8.3666 x 8.30662 = 69, so no bug, just me not looking hard enough!

I like this release of SSMS, I really do and despite all my love for Operations Studio, now renamed to Azure Data Studio it's great to see the continued development of Management Studio.

Tuesday, 2 October 2018

Embracing Learning

The recent release of SQL Server 2019 offers new and improved features for data professionals. There's already lots of information out there about the latest bells and whistles; here's a link to start with and if you haven't already then you can download yourself a copy and have a good look around. 

If we look at the added functionality or support for different technologies between the 2016 and 2019 releases then clearly there's a lot of learning required to stay up to date; new introductions like Linux, containers, Kubernetes, R, Python, Apache Spark and lots more provide quite a list of new capabilities for DBA's and developers to put to use within their data platforms so gaining a good understanding of these technologies is becoming more and more vital.

But staying up to date can be difficult, especially in a technical landscape that is rapidly evolving as it is in current times but it's also a time where embracing the learning opportunities out there will undoubtedly be massively beneficial for those willing to invest in their career management.

I say "willing" because ultimately it is a choice, and with all the learning material being made available from vendors and from within the community it should be a very straightforward choice to make. Whilst it's not going to be free; it is going to take some time, money or more commonly both, the benefits far outweigh any personal contribution (or if you prefer to view it, sacrifice) that you'll be making. 

The main point that I want to put across is that right now, more than ever, it's become absolutely essential for anyone working in a data environment to take ownership of their personal development.

Some may be unsure where to start, which isn't surprising considering the rate of change but that's no reason to simply sit back either. Have a think about some of the factors that go into learning roadmaps; job requirements, your personal career aspirations, areas of interest, new technologies and of course, marketability all need to be considered (yes, the latter does matter) and then map to what training material is out there. It's virtually impossible to not find what you're looking for and if you're stuck for ideas - hey, ask away!


An early SQL conference.

So if you are just watching and waiting take the release of SQL Server 2019 and use it as the perfect opportunity to kick start your personal development journey; go through the release material, explore the new features and supported technologies, check out the changes to existing features, read blogs, watch videos, buy or download some books and attend events like conferences and user groups - there's plenty of choice out there to fit any favoured learning style and many require nothing more than an hour or two of your time. Above all, investing in yourself is the most rewarding investment you can ever make.

Sunday, 12 August 2018

SQL Server DBA: The worst days

In a recent blog post Steve Jones posed the question; what was the worst day in your career? Great idea by the way.

A couple of experiences that occurred early on in my DBA career sprung to mind. There was the rather nasty corruption of a critical but not highly available application database that happened mid-afternoon which led to a very manual and overnight full restore (legacy system means very legacy hardware).  

The subsequent post-restore checks were also quite lengthy meaning the entire recovery process concluded at around 5.30AM the next morning, which actually wasn't that far from my estimated ETA of a working system. Operationally the effects weren't too bad; transactions were captured using a separate system and then migrated into the restored database when it came back online. I'll never forget the post incident discussion either; no finger pointing, no blame whatsoever just a well done to all for having a successful recovery operation and a genuine interest in how we could further minimise any impact in future. 

Then there was the time the execution of an application patch with a slight (and undiscovered until then) code imperfection brought down an entire production server, that just happened to be attempting to process some rather critical financial workloads from various systems at the same time. In truth it was a completely freak event that had happened on a combination of very old systems that were considered flaky at best.

The systems were brought online quickly enough but tying together the results of the various processes that may or may not have worked took hours and hours of querying with lots of manual updates. It might sound terrible, but because of the coordinated effort between different teams and individuals it had actually taken a fraction of the time that it could have done and not only that, data was confirmed to be 100% accurate.  

Want another corruption tale? Why not. How about the time a system database on a 2005 instance went all corrupt rendering the instance completely useless? Of course it never happens to a system that nobody cares about, no, yet another critical system. The operational teams went to plan B very quickly but even better, a solution that avoided large restores was implemented quickly so the downtime, although handled well, was still significantly reduced.

Looking back there's plenty more, I think it's fair to say that disaster is a real occupational hazard for database professionals. And yet despite being labelled "worst days" I actually look back on them with a large degree of genuine fondness. 

You see disasters are always going to happen when databases are involved, it's a fact and how we deal with them at the time is equally as important as how we learn from these events. In each of these examples a recovery plan was in existence for both technical and operational viewpoints, as well as that everyone involved knew what was happening, what to do and critically not to add any additional pain to the situation but to arrive at the solution as quickly as possible.

Learning from these events meant asking the right questions and not taking a viewpoint of blame. How can we prevent this, how can we make a recovery process more robust and what can we implement technically and operationally to improve our response times and also critically, when can we schedule the next Disaster Recovery test? 

Worst days? In one sense most definitely yes. Nobody wants to be in the middle of a technical disaster that's going to take hours to resolve but a solid recovery plan, collaborative effort to a solution and an open forum to analyse and learn from the event makes these memories much less painful!