Michael J. Swart

February 27, 2012

I Was Kidding Myself

Filed under: SQLServerPedia Syndication — Michael J. Swart @ 6:34 pm

Do you know who Vizzini is? He’s a character from the Princess Bride story (I loved the book and if you want to read it, I would highly recommend the hard-to-find unabridged version). Most people know Vizzini from the movie. He’s this guy:

... self-kidder

For those who haven’t seen it… do! I’ll wait. This blog post will still be here when you get back.

As one of the villains in the Princess Bride, he faces the protagonist Westley and they have a battle of wits to the death. Vizzini is asked to decide which of two cups contains poison. Through some pretty heavy-duty reasoning he makes his choice and guesses wrong. His fatal flaw was that he was over-confident in his knowledge. He assumed that he knew a fact and was 100% sure that he was correct. He risked his life based on that assumption and failed. He was kidding himself.

I Kid Myself

I do that too. And way more often than I’m comfortable with. I forget who said it first, but you may have heard “it’s less dangerous to not know something than to know something that’s wrong for sure.”

Here’s how I know that I’m kidding myself (And I’ve played through this scenario many times)

Stage 1: I see behaviour from SQL Server that I don’t expect:

For example, some time ago the performance of a stored procedure took a nosedive when we switched some table columns from VARCHAR to NVARCHAR.

“I’ve seen this behaviour before” I thought,  “The parameters are mismatched with the column type and an implicit conversion is being done. We just have to match up the types and problem will be solved. I’m sure of it.”

But that wasn’t the case. The developer came back to me and showed me I was wrong. The parameters for the stored procedures had already been changed to match the table columns. So what was going on?

Stage 2: I get uncomfortable about it:

I’m supposed to know this stuff. But now the behaviour of SQL Server is clearly demonstrating that I don’t and it’s not up for discussion! Sometimes it feels as if I woke up and the sky was green. Why would Unicode string searches behave that many times worse than Ascii string searches?

That’s when I know I’ve been kidding myself. And I feel uncomfortable about it because if I’m wrong about this stuff, what else am I wrong about?

Stage 3: So I go to learn more things:

This is the fun part. Investigation time. I use google, #sqlhelp, and everything I can to help me get to the bottom of the mystery. In the case of the Unicode string mystery, I opened a  StackOverflow item and got some quick quality answers. Also after the mystery got solved, it made a great topic for a blog post.

Stage 4: I get more comfortable about it:

So beforehand, I thought I knew what I knew. But now I feel sure about it.

It’s hard to describe. Do you know how when you’re asleep, you still think you’re awake? But when you’re actually awake there’s somehow this extra level of sureness? It’s like that.

A Slightly Different Point of View

Like I said, I’ve been through this process many many times. My typical learning journey goes from knowing I don’t know, through the discomfort and back to optimism again.

And I don’t get too uncomfortable any more about not knowing something. It’s because when I recognize myself in stage 2, I’m anticipating stage 3 already: It’s learning time!

So how about you reader? Have you been through this yourself? I’d love to hear about some of your own experiences. What is the craziest thing you believed that turned out to be wrong?


  1. I like this post. I’ve always had respect for people that can freely admit what they don’t know, and disdain for pretenders. Reminds me something a prof said to our class in university some years back:

    – First year students: “Know not and know not that they know not”
    – Second year students: “Know not and know that they know not”
    – Third year students: “Know, but know not that they know”
    – Fourth year students: “Know, and know that they know”

    .. Which I suppose is a statement about the learning journey starting with understanding what you know and what you don’t. I don’t really know.

    Comment by Brian Pearson — February 28, 2012 @ 11:21 am

  2. Thanks Brian, it’s really easy to stay humble this week.

    Comment by Michael J. Swart — February 28, 2012 @ 12:52 pm

  3. Clarification (hopefully)

    Will Rogers: “It ain’t what you don’t know that hurts you. It’s what you know that ain’t so.”

    How I heard Brian’s quote many decades ago:

    He who knows not, and knows that he knows not, is a student. Teach him.
    He who knows not, and knows not that he knows not, is a fool. Avoid him.
    He who knows, and knows not that he knows, is a blind man. Lead him.
    He who knows, and knows that he knows, is a leader. Follow him.

    Comment by Mike Hinds — March 5, 2012 @ 7:54 am

  4. […] Michael J Swart posted a blog this week that had me smiling in recognition and agreement, describing how an inquisitive Developer or DBA deals with a problem. It’s a three-step process, starting with discomfort and anxiety; a feeling that one doesn’t know as much about one’s chosen specialized subject as previously thought. It progresses through a phase of intense research and learning until finally one achieves breakthrough, blessed relief and renewed optimism. In this case, the discomfort was provoked by the mystery of massively high CPU when searching Unicode strings in SQL Server. Michael explored the problem via Stack Overflow, Google and Twitter #sqlhelp, finally leading to resolution and a blog post that shared what he learned. […]

    Pingback by A Community Cure for a String Splitting Headache – Simple-Talk — June 26, 2012 @ 5:59 am

RSS feed for comments on this post. TrackBack URL

Leave a comment

Powered by WordPress