Processing Anger

(Newcomers to this blog: this is not my usual tone. This is me processing a whole lot of things the only way I know how – with a whole lot of words. I’ll get back to pulling apart some poor unsuspecting database soon enough. Probably in Azure. For now, bear with me.)


I have a bookshelf right next to my “work” desk. On it, sits a book by Thich Nhat Hanh, simply titled Anger. I have referred to it in the past when I am overwhelmed by emotions. Anger at injustice, anger at inequality, anger at hatred, anger at other’s actions, and also anger at myself. I’m not immune from making mistakes, assumptions or selfishness. This is what it means to be human.

But it is also human to grow. To change and be changed both within and without. Someone who is committed to growth can say, “I don’t understand, but I can learn.”  Sadly, we often let our anger cut off our growth. Our lack of understanding becomes “you’re wrong”, instead of “I must learn.” This is where we fall. This is where we fail both ourselves and each other.

In Anger, Thich Nhat Hanh speaks of approaching your anger with loving kindness. This is the central theme of the book. And it doesn’t just stop with approaching other people’s anger with loving kindness, it includes our own anger as well. Approaching anger with anger never works. It’s like throwing kerosene on a fire to put it out. You only fuel your own anger, and those around you. Nothing productive is gained, and much that is valuable is lost. Approaching anger with kindness, especially loving kindness, is like cool water on a hot forehead. The burning subsides slowly, gently, and the ability to think clearly returns.

This past Sunday, I logged into Twitter for the first time in many days. Someone notified me that “something important happened”, and I had better check it out. That’s when I read this:


My immediate reaction was one of shock. It is unfortunately my default setting, and not easily changed. I have learned to manage it a little better lately, but still find myself paralyzed sometimes by the pain of seeing someone I care about get hurt. After reading the series of tweets, the blog post they referenced, and being involved in more than a few online conversations, I felt sadness, and a little ill. To think that someone who had come such a long way in their journey could be treated so badly in a community where they felt safe, was unconscionable to me.

My subsequent reaction was, as you probably suspected, anger. Who did this? Who could be so cold? Name and shame! Take this person to task for their insensitive and callous behavior. How dare they treat someone like this, especially in the vulnerable state they were in? How wrong! How mean! I’m going to….

… take a deep breath and reach for the book.

This is a situation that calls for loving kindness, not anger. The anger is never productive. The anger in us drives things away when what is really needed is to bring things closer. Examine ourselves and others more fully. Seek understanding and commonality, not dismissiveness and division. Borrowing some words directly from the master himself:

To the first person, I say this. “I see you, and I am here. I am happy to see you and glad that you are here as well. I am so very sorry that you were hurt, and especially hurt by someone who could have been trusted. I know that you are hurting, and that you will likely hurt for a long time. What I want to tell you is that things will get better. You are not alone. You have me to lean on and to listen to you. I am certain you have others as well. We are all here for you and will love and support you no matter what. Stay strong, and please let me know how I can help you, if only just to listen.”

To the second person, I say this. ” I see you, and I am here. I am happy to see you and glad that you are here as well. I understand that when we cause others pain, the pain originates from within ourselves. Often, we feel like this pain is a part of us. I do not believe that it is. Something is wounding you, burning inside you. That pain is preventing you from accepting the world as it is and being a part of it. I know that you have caused someone pain, and that never feels good, especially when it was a deliberate choice to do so.  I would love to see you let that pain go, to heal and to grow, and to become an even better person. I am willing to listen to you and help you work through that. Maybe we can make that pain go away.”

Finally, to everyone else: “I know you are angry and that you are sad. I am as well. But fueling that anger only causes more pain. It drives the wound deeper and does nothing to heal. If you need help letting go of your anger, or just want someone to listen, I am here for you. Let’s build something better.”

Parting Comments: My thoughts on transition and trans people. 

I can only imagine what it’s like to be trans. I’ve comfortably identified as male all my life. I consider it a foundational part of who I am. I have no idea what it would be like to question those foundations, but I imagine it would be terrifying. I feel incredibly happy for someone who is not only brave enough to question their own foundations, but to go through changing themselves physically and in other ways to be the person they truly want to be. It doesn’t matter where on the gender spectrum that is.

To those of you who are trying to be your true selves: I support you, and I admire you. You have chosen a very difficult path, and few will understand. Some will even allow their lack of understanding turn to fear, and from there to even worse things. When that happens, know that there are those who will support you. I am one of them.

Thanks for reading.



April MadLib Day.

In lieu of deceiving my friends and other people that trust me, I decided to go in a bit of a different direction with April Fools Day this year. I brought back the MadLibs. I’ve done this before a few times on both Facebook and Twitter, and thought it fitting for a day like April 1. Here is the original text, which is all true by the way, and was subsequently parameterized for MadLibbage:

This year, for April Fools Day, I wanted to do something really fun, and I was short on ideas. I thought about changing all the clocks to different times, but I did that last year. The time I switched the sugar and the salt was fun, until my Dad had to toss out an entire container of coffee and was pretty mad about it. I guess it’s back to bad puns and terrible jokes, just like every day.

Yep, every word is true. I don’t do stuff like that any more. I guess it’s a function of getting older, but taking the wind out of someone’s sails for a joke just doesn’t appeal to me any more. So instead, we have the following MadLib results. Thanks to everyone who played along.

Kenneth  – @sqlstudent144

This year, for April Twitter Day, I wanted to do something really bitter, and I was short on ideas. I thought about swimming the banana to a different desk, but I did that last year. The time I stumbled the hat and the SQL Server was fun, until my Dad had to fly out an entire container of dinosaur and was pretty greasy about it. I guess it’s back to bad puns and squeaking jokes, just like every day.

If only I could be greasy like my Dad, maybe my jokes wouldn’t squeak?

Jen – @MidnightDBA

This year, for April Brain Day, I wanted to do something really smelly, and I was short on ideas. I thought about inhibiting the sneaker to a different flag, but I did that last year. The time I screeched the eyebrow and the hand lotion was fun, until my Dad had to blink out an entire container of half marathon and was pretty distorted about it. I guess it’s back to bad puns and fuzzy jokes, just like every day.

I do smelly things every day, though…

Brandi – @brandilarsen

This year, for April Puppy Day, I wanted to do something really solemn, and I was short on ideas. I thought about finishing the cactus to a different tablecloth, but I did that last year. The time I justified the pinky and the noun was fun, until my Dad had to typeset out an entire container of tea cups and was pretty grandiose about it. I guess it’s back to bad puns and ambitious jokes, just like every day.

Can *every* day be Puppy Day? Please?


Thanks for reading.


Presenting Through Time and Space with the Baltimore SQL Server User Group

A couple weeks ago I was delighted to give my first remote user group session to the Baltimore SQL Server User Group. I want to thank the organizers for giving me the opportunity to do so, and to both the organizers and the attendees for dealing with the silliness that often comes with giving remote presentations. I think it went well. The organizers did a great job on their end and the attendees asked great questions, and gave me some excellent feedback. A good time was had all around.

Speaking of asking good questions, I wanted to follow up on a couple of specific ones that I did not have answers for during the session. Here they are:

1. On a system-versioned temporal table, does the primary key need to be clustered or can it be a non-clustered index? Are other non-clustered indexes replicated to the history table?

Indexes are handled independently for system-versioned temporal tables and their history tables. While the primary key is required for a temporal table, it can be either clustered or nonclustered. The clustered index of the history table will always be the period columns. Additional indexes can be added to or removed from the temporal table or its history table independently. Indexes created on the temporal table are not automatically created on the history table.

2. Can you join two tables using different system times.

Yes. There’s no syntax that works with the join clause itself, but you can do it via CTE, temporary tables, or subqueries like the example below.

/* Invalid syntax - the 'for system_time as of' breaks this query. */
select T.ID, 
       OldSalary = S.Salary,  
       NewSalary = T.Salary
from dbo.TemporalTest1 T 
inner join dbo.TemporalSD S  
    on T.ID = S.ID 
    for system_time as of '2018-05-20 00:00:00.0000000'

/* Subquery version that works: */
select T.ID, 
       OldSalary = S.Salary,  
       NewSalary = T.Salary
from dbo.TemporalTest1 T 
inner join ( 
    select ID, Salary  
    from dbo.TemporalSD  
    for system_time as of '2018-05-20 00:00:00.0000000' ) S  
    on T.ID = S.ID

/* CTE Version that works: */
with OldSalaryTable AS ( 
    select ID, Salary  
    from dbo.TemporalSD  
    for system_time as of '2018-05-20 00:00:00.0000000'
select T.ID, 
       OldSalary = S.Salary,  
       NewSalary = T.Salary
from dbo.TemporalTest1 T 
inner join OldSalaryTable S  
    on T.ID = S.ID

The download for this presentation is available on my Speaking page. I hope you had as much fun as I did and thanks again for the opportunity. :-)


SQL Saturday Cleveland 2018: Feedback Stack

My congratulations to the team of SQL Saturday Cleveland, for an outstanding event in 2018. You all put on a consistently well-run event, and I’m proud to be a part of it. I’m looking forward to submitting again in 2019. :-)

I wanted to make a post regarding the feedback I received from my session. I had somewhere between 30 – 40 people in my room, and the engagement was great. Thanks to everyone who came up to talk to me after my session. 19 feedback forms were received from the attendees.  Of those, 14 of which were all positive, for which I thank you very much. It’s good to know that what I’m providing is something people will find useful.

I’m also extremely grateful for the 4 negative feedback forms I received. I want to take a moment to address those specifically. Here were the negative comments I received under the category, “What could the speaker do differently to improve?”

“Slow down a little.” – Yep. I am in complete agreement with you on this one. I have a tendency to talk quickly when I get excited about something, or simply have had too much caffeine. Valid feedback, and duly noted. I will work on this.

“Make slides + scripts available before class begins.” – This is a hard one for me, because I have a tendency to modify the slides and scripts due to feedback I receive during the session. If someone points something out during the session that would require a correction on my part. I want to do that before posting the material. Making the materials available beforehand defeats that purpose. I could always issue an update, sure, but I’m not confident most people would bother downloading it. I am open to suggestions on this.

“More focus on diagnosis, remove inclusive vs. exclusive section, typo on DMV slide “individual””.  – Thanks for all that!  You’ll be happy to know that the typo was fixed before the materials were uploaded, so the available slides are correct. I’d be interested to hear more about why you think I should remove the inclusive vs. exclusive filter section, though. Lucky for me, you were kind enough to let me know who you are, so I will reach out to you individually. :-)

Here’s a comment from the “Did you learn what you expected to learn?” question: “No. Way over my head, was expecting use of EX.Events GUI.”  I’m sorry you didn’t get what you expected out of my session. However, I did explain my reasons for avoiding the GUI. You won’t be able to use any of the automation tactics or scrips I showed with the GUI. I’m not against using the GUI, but I choose not to so that I can save my scripts and automate them. I would suggest playing around with the demo scripts a bit to see if they make sense, and if not – contact me. I’ll see if I can help you out.

Astute readers, I am sure, will note that 14 positive and 4 negative feedback forms does not add up to 19 total. I have one last comment to post, from my favorite feedback form I received, and I think you’ll agree this one defies categorization. I love it.

What could the speaker do differently to improve? “Expand the universal constant governing relative time, and do a 4-day seminar in 45 minutes.”

I’m pretty sure I have a PowerShell script for that. :-)

Thanks for reading.


How to handle the PASS Summit.

About this time every year, there are a plethora of articles that offer advice on how to handle the upcoming PASS Summit. And well they should – it’s a huge event. There are thousands of people congregating there and so, so, SO MUCH to do. Special interest events and community mixers abound. And I’m not even going to touch the number of parties, both public and private, and the sightseeing and karaoke and… Oh, yeah – there’s a conference there, too. Tons of educational material, networking sessions, professional development opportunities, the MS CAT Team and…

Yeah – it’s a lot. Especially to try and pack into three+ days.

One of the things that I’ve heard time and time again is about the opportunities for networking. In fact, there’s a saying about that which I’ve heard used many times regarding this event. It’s, “If you’re eating dinner / lunch, etc… by yourself, you’re doing it wrong.” And to be honest, that kind of rubs me the wrong way.

While I try very hard to be friendly and approachable, I’m not exactly the most social person. Now, if you’re reading this and planning to attend the Summit, please don’t take this to mean I don’t want to talk to you. I most definitely do. Hey – if you read my blog on even a semi-regular basis, I consider you a BFF and will likely buy you a drink in appreciation. :-)

What I’m saying, though, is that I fit the current popular definition of an Introvert. Not a big fan of crowds, I don’t generally stay out that late, and really – I need time to myself to recharge. If you don’t see me running around during the event, it’s likely that I’ve slipped off to my hotel room for a cat nap or down to Pike’s Place for a solo walk by the water. I suspect that there are more than a few of you out there that fit that definition as well.  If so, then this post is for you.

If you’re eating a meal by yourself, that’s FINE.

Just here for the sessions? GREAT.

Want to go sightseeing alone after the day’s events? PERFECT.

Yes, there’s a lot to do there, but you shouldn’t feel like you have to do it all, nor should you feel like you have to jump out of your comfort zone in order to do it. Sure, taking a risk can pay off, and getting a little outside your comfort zone with a little professional networking is one way to do that. It has certainly paid off for me. But it’s hard. I get that. So don’t feel like you’re missing something if you don’t. Don’t feel bad. You’re fine.

And I hope to see you there. But if I don’t, that’s OK. :-)

Thanks for reading.


PASS Election Endorsements

I’m not in the habit of getting political, but here are my endorsements for the PASS board elections this round:

  1. Allen White – I’ve known Allen for quite some time, and I feel his dedication to the community is beyond question. He’s moving the needle in the right direction for his chair, and I would like to see him have more time to continue doing so.
  2. Eduardo Castro – I do not know Eduardo personally, but from what I have learned over the past week or two, I feel he would do an excellent job for PASS. He’s involved, passionate, and ready to roll up his sleeves.
  3. Wendy Pastrick – I’ve known  Wendy as long as I’ve known Allen, and can echo many of the same sentiments. I also appreciate her ability to look into the future of PASS and shape things in a way that benefits the community as a whole. Wendy’s leadership will help PASS continue to grow.

Now, in no way does this mean that I think any less of the other candidates. In fact, this was a hard call to make due to the caliber of the slate. I look forward to seeing the results of this election, and will support the new board members as best I can, whoever they may be.




Joining UpSearch

After what may be the longest interview process ever, I have joined the professionals at UpSearch. This marks a few interesting turns in my career. A few firsts:

  • Working from home, full-time. I’ve worked from home before for short periods; perhaps a week or two at the most. So this will be an interesting challenge for me. I do like my home office though, and find that I am quite productive in it. Often more so than I am in a traditional office environment. I’m confident that this will work out well.
  • Consulting. I’ve done contract work, and many of my previous engagements have been contract-to-hire. I know what it takes to keep clients happy. (Candy. Clients like candy.) However, my most recent previous positions have been as a full-time employee. I’m looking forward to the challenge of working for multiple clients. I feel like I have a decent handle on my time management and documentation skills, so again, I’m confident that I am up to the challenge.
  • Community Involvement. I like to think I’ve been doing this already, blogging, speaking at SQL Saturdays and participating in the local user group. Now, however, this is considered a focus of my job. Maybe a minor focus, but a focus none the less. I plan to expand my community involvement because of this.

Of course, I would be remiss if I didn’t mention that the two best parts of joining UpSearch are the people I’ll be getting to work with. I have great deal of respect for the professionalism and skills of both Colleen Morrow ( b | t ) and Kendal Van Dyke ( b | t ). I’m looking forward to working with, and learning from, both of them.

Let’s do good work.

Thanks for reading.


PASS Summit Thoughts & Speaker Idol Wrap-Up

Summit 2015. Where do I start? The Annual PASS Summit, as anyone who has been there can tell you, is almost always a whirlwind. But there were three specific things I was focusing on this year, and I want to talk about each of them in turn.

First, this year was a lot more about networking and meeting people than it has been for me in the past. I’m not the most social of people, though I do like some karaoke and hanging out with friends. So one of my main goals this year was to meet more people, and get more involved in different activities. Sadly this meant missing out on seeing some people I usually like to spend time with, as I wasn’t going to be at the usual or largest events. For that, I’m sorry my friends – but I will be in touch with you again, soon.

Second, I did not make many technical sessions last year, and wanted to make sure I saw a few this year. So I stopped by Paul Randal’s Mythbusters session, Jason Strate’s Plan Cache session, and Colleen Morrow’s SQL Audit session. All three were excellent, of course. No matter how much I think I may know about a topic, attending sessions, even ones I’ve seen before, always yields a few new nuggets of information that are extremely useful to me.

Third, I was a contestant in this year’s Speaker Idol. I want to spend the rest of this post on that, since that consumed the bulk of my attention this year. Of the 12 people who were originally picked for the event, 2 had to eventually back out. I was very disappointed by that and hope that all is well with them. I would really have liked to have seen them present.

I showed up on day one of the event, with a nicely prepared presentation that I had practiced several times and was happy with. Then I saw the first four presenters and said to myself, “Um… I better go practice some more. And work on my slides. And my demos… ”  I did so, and returned on day two and experienced much of the same sentiments. I was floored by the quality of the speakers. Everyone was very polished and professional. I got to go last on day three, which I think was an advantage. I took copious notes of the judges feedback over the first several sessions. I think that helped me to refine my presentation even further.

When it was my turn, I took the stage with a deep breath (sorry, audio tech) and simply presented things the way I had rehearsed them a couple of hours before. I took mental notes on the judges’ feedback, and thought hard about them. At that point, I was not thinking about advancing in the competition. What I was really thinking about was how to apply the feedback I received and studied over the last few days to future presentations. I really thought the competition was over for me. However, once the judges returned from deliberation, they declared their winner, and I was a bit surprised to find myself declared the wildcard for the finals.

Then, the penny dropped – the judges had come up with a new rule. The person who won the wildcard had to go first in the final round. So that meant I had roughly 30 minutes to come up with something new, or further refine my existing presentation. Yikes. The feedback I had was that the judges wanted to see a slide or example of page splits / fragmentation as I described it. I could have easily found a picture out on the web that displayed something “fragmented” but I didn’t think that fit the existing style of my presentation. So I decided to animate some little blue pages in a random fashion. I also thought about different ways to say some things, based on what the judges found lacking the first time around.

Despite the changes, I was a little more relaxed the second time I presented, and was able to engage with the audience a bit more. Q&A, or really any kind of interaction, is the best part of presenting for me. I love it and it’s what keeps me wanting to present. The remaining presenters went again in the final round, and like I did before – I had no thoughts of winning. Only thinking what a wonderful experience it was.

And then – I won. I honestly, truly don’t know how, but I did. And for that, I have some thanks to give.

THANK YOU: To Denny Cherry, Joey D’Antoni, Hope Foley, Mark Simms, Allan Hirt, Andre Kamman and Karen Lopez for giving us all both the opportunity and means to improve our speaking skills in this way. It was a ton of fun.

THANK YOU: To everyone who showed up, supported us, assisted us, and congratulated us. You are all my #sqlfamily, and it meant a lot to see so many friendly faces, even ones I didn’t know personally, in the audience.

Finally, and most importantly, THANK YOU, THANK YOU, THANK YOU to the other participants in this year’s Speaker Idol. Twitter links provided here, so you can all follow them:

You were all awesome. It was you that pushed me to become a better speaker than I was, and for that, you have my undying gratitude. I sincerely hope you all continue to submit to speak at the PASS Summit for 2016. I would love nothing more than to each of us, up on stage, together. Sharing what we know, and learning from each other. Connect. Share. Learn. It’s what we do.

Thanks for reading.


Speaker Idol. I’m in.

A little over a week ago, Denny Cherry posted the 12 contestants for this year’s Speaker Idol competition at the PASS Summit. If you’re unfamiliar with the event, it’s patterned after the “American Idol” singing competition, where people compete for a record contract, except that you’re in for a speaking slot at next year’s PASS Summit. Sounds like fun, doesn’t it? :-)

If you look close and have a good attention span, you’ll see my name at the bottom of that list. So I will be presenting a five minute technical session on… something. I’m going back and forth between a couple of different things. The difficulty is presenting a complete technical concept in a professional manner with a time span so short. Am I confident that I can do it? Absolutely. I feel like I have enough technical presenting under my belt at this point to do this.

Am I worried about the competition? Nope. But not in the way you might think. You see, I don’t really view this as a competition in the traditional sense. I know a couple of the other participants personally, and have seen more than one of them present before. They’re good – very good. So why aren’t I worried? Because there’s nothing to worry about. There’s no way to “lose”.

At the very least, I get to present a five minute session to a panel of experienced speakers who are going to give me valuable feedback on my presentation skills. Is that not worth participating? I get to work with 11 peers on improving my speaking skills. Yep – totally worth it. And whoever wins – good for you. If I don’t get the speaking slot for 2016, then I just submit as I normally would. See? Nothing to lose and plenty to gain.

Actually, now that I think about it, the people I feel bad for are the judges. Last year’s event was a really difficult decision. So… many… good… presenters… I do not envy the job of the judges one bit. In fact, I’m glad I’m the one on stage. All I have to do is present.

I can do that. :-)

See you there?


Speaking at SQL Saturday Kansas City

Whew… where does the time go? Well, if you’re me it goes into helping all the people that spent money on projects earlier this year to finally implement everything over the last few months. To say that work has been busy would be a gross understatement of the recent Sisyphean nature of my job.

There. That should be enough literary references for now.

Anyway. Just a quick note that I’ve updated my speaking schedule. I’ll be in Kansas City this weekend for SQL Saturday #444. Seriously, #300, #444… KC gets the cool numbers. Wait – I wonder who had SQL Saturday 007… :-)

I hope to see you there.  More posts coming soon. Promise.