#sqlsat48 Datachix1’s Wrapup. Columbia SC/October 2, 2010

I had a great time at this past Saturday’s event in Columbia, SC where I  was lucky enough to be presenting.  I forgot to mention during my presentation –“Cool Tricks to Pull from your SSIS Hat” –that Carolina is my alma mater, and the Columbia area was home to me and my parents for 8 years. 

This was my first time back in 15, and besides the great professional event, I got to see several dear dear, friends from my previous life which was in Theatre.  I stayed at the lovely Hampton Inn in downtown Columbia (in the newish Vista area).  My mom came with me and we caught Rent at Trustus Theatre, which was only a few blocks from the hotel.  What an amazing show!  Shout out to the folks at Trustus for 26 years of theatrical awesomesauce. 

My mother happens to be a smart lady who is also interested in the SQL Server lifestyle, so she also came with me to the speaker’s dinner and the event itself.  It was really nice to share a little of my career with her.  I’m pretty sure she loved it.

This event was swarming with MVP’s and VIP’s and I got a chance to meet quite a few great folks and cavort with people I already knew. 

Where should I start?  Maybe with my some of my homies from Atlanta…..

Mark Tabladillo.  He’s a super smart guy with whom I shared a great conversation at the Speaker’s Dinner about Data Mining and ways to test the trustworthiness of your results and predictions.  My conversation with Mark illustrated to me the beauty of SQL Saturdays and events like them—you can not only learn cool and useful things, but enjoy great conversations and build relationships from which you can continue learning. 

Bob Langley.  Bob sat next to me at the speaker’s dinner and I was pretty sad to learn that we were scheduled to speak in the same time slot, because his presentation on Column Level Encryption really interested me.  This is a request I have received before, and I want to see what the possibilities are.  This was Bob’s first speaking engagement—kudos for speaking.

Stuart Ainsworth.  Stu did 3, yes 3 presentations.  I was not able to make any of them because of the restraining order, (just kidding), but I did hear that he did a great job.  He reported that his lunchtime demo was slightly hindered by a runaway process which ate his laptop, but I don’t think anyone noticed because

— the LUNCH was AWESOME!

                And FREE!  Thanks Sponsors

Special thanks also to Brian Kelley and Bobby Dimmick (and all the volunteers, especially Paul Waters who was my AV helper and the lovely man who watched our stuff all day in the speaker’s room).  The day really did go beautifully. 

Now the Outliers:

David Taylor from Alabama by way of Boston.   David was doing a new presentation on DBA tasks which my mother loved.  David is a recent convert to SQL Server whose enthusiasm for our community is palpable.  I always enjoy seeing David.

Jose Chinchilla.  Jose is a super nice guy that  I got to sit with at the Speakers Dinner as well.  He is running a SQL Saturday event in Tampa in January of 2011, which I hope to make.  Mom sat in on his certifications session, and she is really excited about getting some certifications now. 

Andy Leonard. (Blog | Linkedin | Twitter)  The Man . The Myth. The Moustache  :{>.  Andy is one of those Rock Star names in BI that I was super excited to get a chance to meet and hear present and he didn’t disappoint.  He loves his work and he loves his family and he loves sharing the tools of our trade with people.  I watched both of his presentations and got to learn how bigger shops can standardize large deployments and solutions, with clever safeguards in place.  He took time to talk with me about my presentation, sharing with me some additional xml tools I could use and giving me praise which made me all giggly.

Andy Warren. (Blog | Linkedin | Twitter) Co-founder of SQL Saturday, SQLServerCentral and a Director at Large of PASS.  Andy’s presentation on developing yourself professionally was well received and given that bio, I think he knows of what he speaks.  He encouraged us to think of ourselves as a product or business, and to develop a business plan accordingly.  I concur. 

Jessica Moss.  (Blog | Linkedin | Twitter) So glad I got to meet Jessica and see her presentation on Reporting Services.  Jessica is a great speaker—people were engaged and learning and she has a great time up there, which I love to see.

My presentation went very well.  I had 20 folks and I felt like most of my group was really enjoying it.  Several folks said they learned at least one or two very useful things.  I realized when it was over that I didn’t get very many questions, but people were definitely engaged, so I hope I wasn’t bulldozing them.  Got an average score of 4.6 (out of 5)—the large majority of people liked the presentation a lot. 

My advice to first time speakers:  (Robert Cain also gave me this advice):  practice with 1024×768 resolution.  You would be amazed how much the low resolution will throw you off, and how frequently you encounter it.  Also, practice your presentation with people in an audience—I inflict it on my coworkers.  I did practice runs on Tuesday and Thursday.  Tuesday really kind of sucked (thanks dear coworkers for suffering through it), on Thursday I felt much better and by Saturday I was pretty happy.

SSIS 2008 – Annotations are Word-wrap-less (is that a word?)

I just have to throw this rant out there… I’m trying to be a good little developer and put a comment about a weird update we’re making based on a new business rule.  I add an Execute SQL task, but my pretty update statement in there, and connect all the lines back up.  Go to put in an annotation, (right-click on design surface, click “Add Annotation”), and start typing away.  In case you don’t know me well, I tend to be a little, um, wordy at times.  I see the text box getting longer and longer, and I’m assuming that when I click off, it’ll word wrap for me.  You know… word wrap.  Even Notepad has word wrap!

Lo and behold, no wrapping.  Just one loooong line of text.  I Google, and here’s what MSDN has to say:  “The text block does not provide word wrap, but instead scrolls the text as the text exceeds the width of the text block. Press Ctrl-Enter to add a new line to the text block.”  Ladies and gentlemen, welcome to SSIS 2008, where we can handle complex, enterprise-level ETL processes, but we can’t wrap some text in a little box.  Forgive me, Microsoft.  I heart you, even if you did just waste 15 minutes of my day.  Even sadder, I spent 5 minutes repeatedly hitting “Enter”, trying to figure out what was wrong with it before I decided to go to the Google. 

Ctrl-Enter, my friends.

The Case of the Mysterious Failing Packages

Or, that time I pimp-slapped some GUIDs…

Let me set the stage for you. We’re less than a week out from a major production push. We move the SSIS (2008) packages over to the integration testing server to make sure everything is good to go. On each data load, something fails. Never in the same package, never in the same task, never from the same source data. We think it’s the server. We move the packages again. More failures.

I’m losing sleep, breaking out in a weird rash that may or may not be related to my panic, and my boss is at my cube every hour asking how things are going in his, “I’m trying to be supportive, but fix the damned thing already”, voice. I’m rethinking my Don’t Drink During Work policy. This is not good. I just can’t find anything wrong. I can run the packages independently and they’re all happy green boxes. I can run the whole load from the beginning and it’ll get past the point of the prior failure only to crap its pants further down the line. Now, full disclosure: I sort of suck at SSIS. It’s fairly new for me, and while I’m learning, I still have a long way to go. Let’s just say that my self-confidence was not at an, “I’m Okay, You’re Okay”, sort of level.

After the latest failure and an inappropriate-for-the-workplace, profanity-laden outburst from me where I may or may not have referred to SSIS as “the stinking offspring of a poxy two-dollar…”, oh, never mind… I hear a question from the next cube over. “Have you reset the GUIDs?” What? GUIDs? Uh, no. I stand up, plant myself in my co-worker Tom’s cube, and ask for an explanation. He explains that if packages are copied, sometimes the GUIDs can be the same in two packages. Then, if they end up running in parallel, it can screw up memory management and SSIS freaks out. And as we all know, when SSIS ain’t happy, ain’t nobody happy. We use a stock template for all of our packages that is copied and then saved off as the new package. And, since our dimension loads are pretty standard, if we need to add a new dimension, sometimes it’s easier to copy one load package and modify it rather than building one from scratch. Yes, I’ve definitely done some package copying in my short tenure as an SSIS developer.

Jeff wanders over, listens to my plight and confirms that I should definitely try resetting the GUIDs. These two guys, who have since been inducted into my Personal Heroes Hall of Fame, explain that with BIDS Helper (totally free download), I can reset the GUIDs on a package and hit every object within that package. A quick rundown of the feature and why it is useful is here. Luckily, I had already installed it for a couple of other features it offered, so I got to work. Can’t hurt, right? Our ETL process is fairly complex, and we have a lot of data moving around. Dimension loads, fact loads, auditing, staging, the works. It took about an hour between me and another co-worker, Tim, to step through all the packages, check them out of TFS (Team Foundation Server), reset the GUIDs, and check them back in. It was easy. Just right-click on the package, look down to the bottom of the menu, click Reset GUIDs, confirm, and you’re done.

We move the packages with their new and improved GUIDs back over to the integration testing server, and viola!, data’s flying around like Your Mama insults at a middle school. No failures. Let me reiterate: With no other changes, the sporadic failures stopped when we reset all the GUIDs.

Now, I can’t say with 100% certainty that resetting the GUIDs definitely fixed the problem. All I know is that we did it, and the failures stopped. That’s one hell of a coincidence if it wasn’t the issue. This is right up there with the legendary, “Try rebooting the server”, and his lesser known cousin, “Restart the service”. It is something to try when all else fails.

What did I learn? A few things:
1) SSIS does not have a personal vendetta against me. There was no ghost in the machine.
2) BIDS Helper is my friend. Just install it. You’ll love what it gives you.
3) If I copy a package, I make it part of my routine to reset the GUIDs.
4) When in doubt, curse loudly until someone comes up with an idea (just kidding). Seriously, this is a great example of why we should get up from our desks and enlist the ideas and knowledge of those around us. Turns out that I work with some pretty smart guys.