May 272010

Every once in a while I hope to use this blog to investigate the lighter side of database/computing topics.  After all, redundancy can (and should!) exist in many more places than corporate network architectures.  One of the places you may be surprised to hear about redundancy is college marching bands, which I feel more than qualified to talk about.

That’s right folks, I’m a bando and proud of it.  I played clarinet from 4th grade all the way through college, and was part of a marching band for 9 years.  Yes, I did go to band camp, had some great times there too, but I’m sorry to tell you that it’s not exactly like American Pie would have you believe.

High School Band

The downfall of any marching band formation is the hole, which is simply the absence of a person.  Having someone missing from a formation looks every bit as bad as someone being in the wrong spot.  In high school bands (at least where I went) there wasn’t a whole lot that could be done about it.  When a student brings a note from home saying they need to be excused from a performance taking place outside of school hours, how does a teacher argue?

In college marching band, everything was different (true for most things in college I suppose.)  One of the best explanations I’ve heard is that high school bands exist for education, so everyone needs to be able to participate.  College bands, on the other hand, are strictly for entertainment purposes, so steps must be taken to ensure the quality of each performance.  At the University of Illinois, this is implemented through redundancy in what is known as “the alternate system.”  I know many other university bands that do similar things by different names, but I’ll talk about how it works at U of I.

College Marching Band

Every section in the band is divided into squads, each consisting of 5 people.  As a clarinet there were 20 of us, so we had 4 squads for our section.  Here’s the kicker: even though each squad has 5 people, it only has 4 spots in the formation.  The person who doesn’t march is known as an alternate.  Alternates are selected about halfway through the process of rehearsing a show, typically based upon the speed at which one is learning the drill.  Alternates continue to rehearse the drill and are present and dressed on gameday so they can step in at moment’s notice should anyone be sick, injured, or otherwise unable to perform.  So long as no more than 20% of the band is incapacitated during a game, you won’t see a difference in the drill.

May 252010

I think all of us who sit in front of a computer for a living have a few free programs that we’re particularly fond of.  Here’s what I’m liking as of late.


My favorite general-purpose text editor.  Along with pretty much anything else, I find myself writing a lot of T-SQL code in here and then copying/pasting into SSMS.  My favorite features include column editing mode, double-click searches, and a wide variety of plugins.  Supports syntax highlighting for a ton of languages out of the box, but extensions are available that allow it to handle even more.  I used to use another text editor which seemed ultra expensive for what it did.  Notepad++ does everything I need for free.

KeePass Password Safe

I use KeePass for keeping all of my passwords straight.  I used to have 4 or 5 “go-to” passwords that I used for nearly everything.  No longer is that the case, since KeePass stores them for me in an encrypted file.  Since I don’t have to remember all my passwords anymore, it’s a lot easier to use a different password for everything, and those passwords are much stronger as well.  KeePass also has a rather powerful and customizable password generator built in should you want completely random passwords.  I don’t know what I’d do without it.

SSMS Tools Pack

Developed by the SQL Server Community’s very own Mladen Prajdić (blog | twitter), SSMS Tools Pack is a great free add-in providing extra features for SQL Server Management Studio.  Some of them are awesome enough that Microsoft has included its own implementation in later releases of SSMS.  It’s one of the first installs I make on a development machine.


Great tool for creating encrypted volumes on your computer or thumb drive so you can safely store sensitive info.  Allows you to mount & dismount encrypted volumes quickly and easily, or encrypt an entire drive or partition.  Lets you pick from 3 different encryption algorithms on their own, or 5 different combinations of them.  I’ve been encrypting my data with this for years and don’t plan on using anything else at any price.

Moffsoft FreeCalc

Why not just use the built-in Windows calculator?  Simple – this one is better!  Maybe it’s a throwback to my high school days where I spent the summers working for a city finance department, but I really like printing calculators.  FreeCalc has a “tape” that shows what you’ve been up to.  It’s especially useful when adding a bunch of numbers at once.  It’s an oldie (copyright 2000-2004), but a goodie!


While this is by no means a replacement for professional tools such as Adobe Photoshop, this free tool can do an awful lot of the basic stuff I need on a day-to-day basis, such as resizing and cropping.  It can also do way more than that, but I’m a DBA, not a graphic designer!


An amazing tool for making and editing screenshots.  Previously I would take a screenshot using ALT + PRNT SCRN and then edit in Paint.Net.  Screenpresso lets you do it all in one place.  You can crop a section of your screen as a screenshot, do basic editing right in the tool (blurs, arrows etc) and then paste into your desired application.  It also saves your screenshots for you in its own library.  Worth every cent you didn’t have to pay!

May 212010

When preparing to take certification exams, I always purchase test preparation materials no matter how ready I feel that I am.  I do this for two reasons:

  • There’s no such thing as being too prepared (being a Boy Scout taught me this many times over)
  • I can be sure of what topics will be covered

As I was getting ready to take the 70-450 exam (MCITP: SQL Server 2008 Administration)  I couldn’t find any official training kits available for that test.  Even as I type this 4 months later I still see none when searching for “70-450” on  Figuring that something was better than nothing, I purchased the Microsoft Official Academic Course booklet.  This booklet covers not just the 70-450 exam but also 70-443, the equivalent for SQL Server 2005.

The Package

This is what you get

When I ordered this book I had in my mind what I consider to be the “standard” training kit, a 600-700 page book around 2″ thick either paperback or hardcover for $50 or $60.  With this book being nearly double the price, I wasn’t sure of what to expect.  Should you order it, you’ll actually get two books, both of which remind me of “workbooks” from high school or college.  (They even come with the college price!)  The “textbook” component is 297 pages, with a separate lab manual coming in at 110 pages.  Also included is a CD-ROM with practice exams.

The Contents

In short, the book didn’t do a whole lot for me.  Unlike the other training kit books I’ve read, most topics are covered in very little detail, and there’s usually a “pointer” to look the topic up in Books Online for further study.  Well heck, if I wanted to read BOL, I’d just sit and read it for free instead of paying a ton of money to be told to look it up anyway.  This book also has the “feature” of denoting 2008 topics from 2005 via color.  Any sections covering a 2008-only topic has blue-colored text, whereas anything about 2005 is in black.  To me, this screams that they took a book originally about 2005 and shoehorned a bunch of 2008 content in there instead of writing a new book.

The lab manual contains a dozen labs with step-by-step instructions and screenshots for accomplishing the task at hand.  Literally step-by-step instructions, such as “From the Start menu, select All Programs then Microsoft SQL Server then SQL Server Management Studio.”  Oh and most labs starts out that way, not just the first one.  I can understand the benefits of writing the labs assuming minimal knowledge of the topic so that they don’t need to be completed in order, but at the same time both tests this kit is preparing you for are considered “advanced” and have prerequisites.  If you don’t understand how to open SSMS, you probably shouldn’t be thinking about taking these tests as your time may be better spent getting familiar with SQL Server first.

The Extras

I was not at all impressed by the practice tests included on the CD.  My first clue that I probably wouldn’t find it very useful was the quality of some of the questions.  As much as I’d love to include a screenshot of one of them in particular, the license agreement prohibits me from doing so.  Here’s an extremely similar example though:

You have a 20GB database that grows by 200MB each month.  How large will the database be in 2 years?
A) 14.8
B) 24.8
C) 40.0
D) 50.0

Did you come up with 20 + (0.2 * 24) = 24.8GB, or B?  That’s what I got.  Guess what, we’re both wrong!  According to the answer and explanation, it’s actually A, because according to their answer key “20 + (0.2 * 24) = 14.8”.  That’s right folks, the 20GB database that they claim is growing actually ends up smaller 2 years from now.  Maybe they’re just using a different number system.  Sadly, this wasn’t the only question with a blatantly incorrect answer.  A little bit of proofing on the practice tests would have gone a long way.  The engineer in me also cries out for some units in the answer choices.  14.8 what?  GB? MB? Smoots?  We’ll never know, because they didn’t label it.

After completing the exam, I can also say that these questions didn’t give very good examples of what was on the test.  They helped to review what the book covered, but as I’ve already said, I wasn’t very impressed with the book either.

The Conclusion

To sum it all up, as you can see this was definitely not the best certification training kit I’ve ever laid eyes on.  I place half the blame on myself for not completely understanding what a Microsoft Official Academic Course was when I bought it.  It’s not intended to be a “do it yourself” training kit – it’s meant to be taught by an instructor.  This is stated right in the preface:

“The Microsoft Official Academic Course series is a complete program for instructors and institutions to prepare and deliver great courses on Microsoft software technologies.”

The rest of the blame I place on the book.  The style didn’t do a whole lot for me and the practice exams were particularly disappointing.  I’ve seen many textbooks that (like this one) were meant to be part of a course taught by an instructor that I’ve learned much more from on my own than this.

For purposes of full disclosure I should add that I did in fact pass the test.  I’d like to think that I knew most of the material anyway and really didn’t need this test preparation manual, but there’s really no way to tell.

May 192010

A little over a week ago, Wendy Pastrick (blog | twitter) had a blog post, Attack of the Killer Maintenance Plan, where she crafts a horror story from her experience checking out some maintenance plans designed by a former employee.

After reading this, I was inspired to come up with my own tale, blended with classic American Literature.  The irony here is that I hated (and hence did terrible in) all my english and literature classes throughout school.  This was especially true for Mr. Miller’s 10th grade American Lit class, where I believe my final grade was a “C-“.  Thankfully, he’ll probably never find my blog.  Without any further ado, and with my profound apologies to Edgar Allen Poe, I present to you:

The Chicken.

Once upon a worknight dreary, while I labored, weak and weary,
O’er a large and poorly designed database for a major store,
While I nodded, nearly napping, suddenly there came a tapping,
As of some one gently rapping, rapping on my office door.
“Tis some visitor,” I muttered, “tapping on my office door –
Only this, and nothing more.”

Ah, distinctly I remember it was only last September,
I inherited this system with its tables, procs, and more.
The designers weren’t so wise; — they knew not how to optimize
All their promises were lies — lies to boost their earnings score —
For the salesman said speed would increase by a factor of four —
Baseless here for evermore.

Open here I flung the shutter, when, with many a flirt and flutter,
In there stepped a stately chicken of the saintly days of yore;
Not the least obeisance made he; not a minute stopped or stayed he;
But, with mien of lord or lady, perched above my office door —
Perched upon a bust of Ozar just above my office door —
Said “trololo”, and nothing more.

Then this odd white bird beguiling my sad fancy into smiling,
By the grave and stern decorum of the countenance it wore.
“Though thy crest be shorn and shaven, though,” I said, “art sure no Wiccan,
Ghastly grim and ancient chicken wandering from the Nightly shore –
Help me learn to outer join 6 tables so ’tis not a chore!”
Quoth the Chicken, “Such a bore.”

But the chicken, sitting lonely on the dirty desk, clucked only
Those three words, as if his soul in those three words he did outpour.
Nothing further then he uttered— not a feather then he fluttered —
Till I scarcely more than muttered, “attempts we have made galore —
It takes way too long to store records we will get asked for.”
Then the bird said, “Try quad core.”

Startled at the stillness broken by reply so aptly spoken,
“Nonsense,” said I, “what it utters is its only stock and store,
From my sleep I will awaken, rise, consume a pound of #bacon
All of this in place had taken in my dreams I was for sure
When done counting #sheep all will be as it was before —
I’ll speak of this nevermore.”

Pinching hard ’til nearly weeping showed me that I was not sleeping,
Straight I wheeled a cushioned seat in front of bird, and bust and door;
Then upon the velvet sinking, soon out loud I started thinking
Why oh why is my brain shrinking? Help me please I do implore —
Where can I find folks that will not my questions ignore?
Quoth the Chicken, “Twitter more”

May 132010

While I wasn’t explicitly tagged for participation in this meme, Wendy Pastrick (blog | twitter) was kind enough to tag everyone else who hasn’t been tagged already.  Being in need of a first topic for a blog post, this seemed like a good one to start with!

Since a lot of things have already been spoken for, here’s 3 things I particularly hate accompanied by 2 favorites from others.  If someone else has already mentioned my 3, my apologies for apparently not reading your blog!

1.  View Dependencies
Once I discovered this “feature” I quickly learned that it wasn’t reliable, so why include it in the first place?  I say either fix it or get rid of it altogether.  I always got along just fine by querying system tables or system views.  Red Gate SQL Search is also particularly helpful.

2. XML Indexes
I have nothing against XML, and I fully understand that there will always need to import/export XML to/from a database.  What I really hate though is the idea of storing data in the database as XML.  The ability to create indexes on XML data types only encourages this behavior, so it really wouldn’t break my heart to see it go.

3. Indexed Views
I understand the reasons for having indexed views and believe they serve a purpose, but I’ve always thought that the list of restrictions on them was rather comical.  If you’re going to take that much functionality away, why bother including it at all?

4. RECOVERY being the default RESTORE option
This comes from Paul Randal (blog | twitter) and I couldn’t agree more.  Even though I’m well aware you need to specify WITH NORECOVERY, I’ve still managed to bork a restore every now and then and have seen others do the same.   Having to do an extra RESTORE WITH RECOVERY at the end of a restore sequence wouldn’t bother me one bit.

5. Database Diagrams
Courtesy of Brent Ozar (blog | twitter).  Not that I haven’t used these, but I agree with Brent’s statement that it’s an optional feature and really don’t see the point in putting smack at the top of the object explorer tree.

And that’s it!  I don’t believe there’s anyone left to tag at this point, but if you haven’t already written a post about this and want to, go for it!