Blog

The Microsoft Certified Master Certification Target Audience

#SQLPass
7 Comments

Jay Grieves (aka Big Swinging Developer) gives 3 steps to manage developers:

  1. Find out what success means to your team.
  2. Determine how each team member can be a valuable part in making that happen.
  3. Monitor.

For me, this was the most important part of the article:

The secret to being a Big Swinging Developer is to be a force multiplier; make other people more valuable and you become incredibly valuable.  Don’t believe me?  Which do you think is worth more: improving your own effectiveness by 50%, or improving 10 people’s effectiveness by 10%?

This is the best way I’ve seen yet to explain something completely different – the Microsoft Certified Master program.  I hear people on Twitter complain that Microsoft’s out of touch, that the MCM certification doesn’t matter to DBAs, that it’s too expensive and takes too much dedicated time.  (If you haven’t heard of the MCM before, it takes around $20k and four weeks of training at the Microsoft campus.)

The MCM cert makes sense for people who are force multipliers: people who work in groups of highly trained, highly skilled IT professionals who all make a living off the same Microsoft product.

Take me, for example – I work with dozens of developers, support engineers, product managers, documentation writers, and so on who all make their living exclusively off Microsoft SQL Server.  They run into unbelievably challenging situations all the time, and they need resources who can give them detailed, accurate answers the first time.  If I get an MCM, I’m not going to be 50% more effective – but I bet I can make 20 people 5% more effective.  Plus, those 20 people are really hard to find, really hard to keep and really hard to train (because training at this level is freakin’ expensive), so making those 20 people 5% more effective is worth a lot of money.

No, the MCM cert doesn’t make sense for most SQL Server professionals.  But when it does make sense, it makes a LOT of sense!


New StackOverflow database server coming

Stack Overflow
0
SQL Server for StackOverflow
SQL Server for StackOverflow

Today, Jeff Atwood blogged about StackOverflow’s new SQL Server hardware: a Lenovo RD120, the artist formerly known as an IBM x346.  Notice the big heart on the box.  Servers run faster with love.

Next, I’m aiming to do log shipping from the box pictured here over to Amazon S3.  The StackOverflow transaction logs will be copied up to cloud-based storage in S3.  That will enable us to do log shipping to the cloud without actually running a SQL Server on the other end until it’s absolutely necessary, thereby avoiding the expensive cloud-based SQL licensing (around $1/hour at the moment).  When disaster strikes, we’ll turn on a SQL Server in EC2, apply the logs, and be up and running quickly.

Well, I dunno about running, but we’ll be able to get up and walking, I suppose – EC2 disk performance isn’t exactly stellar.  A couple of months ago, I ran SQLIO performance tests on Amazon EC2 to see how it performed, and the results were horrific.

In fact, EC2 performance doesn’t even come close to what Jeff was able to get with relatively cheap off-the-shelf hardware. You can replicate those same disk performance tests yourself on your own gear, although be aware that it hammers the server for about a day.

Stay tuned and I’ll be documenting how to log ship SQL Server into the cloud.


Switching from coffee to tea

11 Comments

As a telecommuter, I drank a lot of coffee.  When I worked from home, I polished off a pot before noon, and when I worked from coffee shops I’d drink a couple of large lattes before lunch.

This presented a few problems:

  • Caffeine makes me cranky (when consumed in these kinds of quantities)
  • Lattes have calories (around 150-300 depending on the milk)
  • I moved to the middle of nowhere, 16 miles from the nearest coffee shop.  (16 miles is a heck of a long distance when there’s icy roads.)

A few DBAs on Twitter were talking about their love of teas, so I did some research and fell in love with the Adagio Teas web site.  They offer things that make it easy to get started with teas, like:

  • Starter Set – for $19, you get several different kinds of teas in a given family, plus their ingenuiTEA teapot. It’s microwave and dishwasher safe, easy to use, and uses loose tea leaves instead of bags.  The video makes it look like your cup has to fit exactly under the teapot, but I use it with bigger cups. You just push the rim up of the cup against the ingenuiTEA’s trigger, and as Erika says, the teapot pees into your cup.
  • Sampler Six-Packs – for $16, you get 6 tins of teas in a family.  There’s a black tea sampler, oolong sampler, rooibos sampler, you name it.
  • Individual Samplers – if just one tea calls your name but you’re not sure about it, you can get a small sample-size tin of it for a few bucks.  Different teas are priced differently.

I had no idea what I’d like, so I picked up a starter set of black teas and a couple of sampler packs for around $60 total.  It seems like a heck of a lot of money when you can go to the supermarket and get a box of tea bags for $2, but if you’re a coffee addict, think of it this way: you can’t buy a decent coffeepot for $60.  (Yes, cheapskates, you can get a Mr. Coffee for $15, but if you’re drinking coffee out of that, you’re not really an addict.)

ingenuiTEA Teapot from Adagio
ingenuiTEA Teapot from Adagio

I’m hooked.  Big time.  Here’s my findings so far:

Golden Monkey is a great tea for coffee addicts.  It’s got a dark, complex flavor that reminds me of coffee.  It doesn’t taste like coffee, mind you, but if you’re a coffee addict that appreciates dark, subtle differences in flavor, you’ll probably like this.  It doesn’t have that pleasant coffee aroma by any means: one of the reviewers on Adagio said it has the flavor of warm mushrooms, and I’d say that’s a good description of the aroma too.  This one does have caffeine.

Rooibos Earl Gray is amazing. Rooibos is an herbal tea, not a real “tea” in the traditional sense, but I wanted to try it because it’s caffeine-free.  If you’re just getting started with teas and you’re thinking about avoiding caffeine, it makes sense to start with Rooibos since you won’t know what you’re missing.  Earl Grey refers to tea made with an orange oil, and Adagio’s Rooibos Earl Grey throws in some orange rind as well. I tried several black teas before I tried an Earl Grey,and when I first smelled the Earl Grey, I think I actually said “Eureka!” out loud.

They’re serious when they give temperatures and brew times. Adagio’s tea containers have the water temperature and steeping times printed right on them, making it easy for tea n00bs like me to do it right.  Let the tea steep too long, even just a minute too long, and it tastes bitter and nasty.

The ingenuiTEA teapot makes the experience more fun. I like having a clear teapot, watching the leaves blossom and color the water.  Part of the joy of coffee and tea is the brewing experience – this is the same reason I used to like my Bodum Santos, a vacuum-driven coffee pot. It was just fun to watch.

I’m not swearing off coffee – it’s still my favorite beverage, but now I have a pleasant alternative I can use while I’m telecommuting in Michigan.  When I get back to Houston this fall, I’ll probably settle back into my old ways at Coffee Groundz.


PerformancePoint is very important to us, so…

5 Comments

At a former company (not Quest), a memo came out from the head honcho.  It went a little something like this:

Training is really important to us.  We have to make sure absolutely everybody in every department of the company is fully trained.  It should be completely ingrained in what every department does.

In order to achieve that goal, we’re going to embed the Training Department team members in each department of the company.  Jane will be moved into the BI group, Joe will be moved into the Web group, etc….

We all got a big chuckle out of it, because we understood what was really happening.  The Training Department was being vaporized without anybody having to actually say, “We don’t really need a Training Department.”  Everybody needed help in their departments, and the former trainers would be gradually tasked with more and more non-training jobs, picking up workload.  It was a way to cut costs without directly cutting costs.

Today, Microsoft made an announcement about PerformancePoint.  I know you don’t really want to click that link, so I’ll paraphrase it for you here:

PerformancePoint is really important to us.  We want to help every one of our customers monitors their performance.

In order to achieve that goal, we’re going to embed PerformancePoint into SharePoint.

Gotcha.  Say no more.


Running a Contest with SQL Server

1 Comment

If you ever need to run a random drawing contest with a SQL Server database back end, here’s one way to do it:

Create a table to hold each person’s name and email address.  We use EntryID as a primary key, not their name or email, because a person can enter more than once.

Insert a record each time somebody enters:

Draw a random winner by running this script for each prize:

The “order by newid()” part will give us a random record out of the table.  The “where PrizeWon is null” part will make sure we don’t draw an entry again after it’s already won.


Top 10 SQL Server DBA Interview Questions

I’ve put together my best questions to ask during an interview when I’m hiring a senior database administrator for Microsoft SQL Server or Oracle.  I don’t expect any DBA to ace all of these – I’m not looking for easy questions, but rather for the top ten questions, tough challenges to let the really good DBAs shine during the job interview.

10. Solve the FizzBuzz problem with SQL code.

Here’s a quote of the FizzBuzz problem:

Write a program that prints the numbers from 1 to 100. But for multiples of three print “Fizz” instead of the number and for the multiples of five print “Buzz”. For numbers which are multiples of both three and five print “FizzBuzz”.

Challenge the DBA to do this on a whiteboard with pseudocode.  The code doesn’t have to be perfect syntax, but we’re looking for the ability to solve this problem clearly and quickly.  I’d ask this of any type of DBA, production or development.

There’s countless ways to do this, but I’m almost not as concerned with their technical accuracy as I am with the way they approach the problem itself. Do they get excited? Do they scribble out a few different ideas? Are they stunned at the thought of having to actually write T-SQL? Do they make excuses?

9. I’m a manager, and you’re my Senior DBA. Explain to me why we shouldn’t switch to MySQL or Oracle.

A senior DBA should have a basic grasp of the advantages and disadvantages of the major database platforms.  They’ve probably answered this question before, too – if not from a manager, then from a developer who’s whining because they think Platform X is better than Platform Y.

I also want to see senior DBAs that can clearly explain a very political concept without taking it personally.  My ideal DBA knows when his platform isn’t the right fit, and has no problem suggesting other ideas.

8. I’m a developer. Explain why I need a unique key on my table.

And really pretend that you’re a developer.  If you’re a DBA manager, bring in one of your toughest developers to play bad cop.  Challenge them – does it really improve performance or manageability?  How do you know?  Is it just your opinion, or where’s the proof?

If they can explain it in clear, easy-to-comprehend terms, that bodes well for their ability to communicate with other teams.  Speaking of inter-team communication…

7. A project manager needs a new SQL Server. What do you ask her?

Use a brochure from any third party application (like Microsoft Project Server or Blackberry Enterprise Server) and say the project manager wants to set this up.  I want the DBA to ask questions like:

  • How big will the database be?  (Leading to questions about whether we can add the database to an existing server)
  • How critical is the database?  (Leading to questions about clustering, disaster recovery, high availability)
  • What’s the company standard on virtualization?  (Can we save money by using a virtual server)

If the senior DBA candidate comes back with a shocked look and doesn’t know where to begin, then they haven’t done a lot of deployments.  That might be fine if your shop rarely does new deployments, or if you’re hiring a development DBA, but they still should have some basic knowledge about sizing.

6. When and where does the local user group meet?

I’m not asking if they regularly attend, I’m not asking if they speak, I’m not asking if they run for office.  At the senior DBA level, I’d just be thankful if they were at least vaguely aware that user groups existed.  Huge massive bonus points if they’ve been involved with the community, and I’d skip the next question.

5. Can you give me references from other DBAs and developers who aren’t at your company?

I want to know that they’ve got at least a couple of people they can call when the going gets rough and the servers catch fire.  These other references could be mentors, or could be people they’ve mentored or just worked with along the way.

I expect to get terrified looks, and I’d answer those by saying, “I don’t want to raise any red flags by calling people at your current employer, and I’m sure you know people who’ve left your company and moved on.  I just want to talk to people who’ve worked with you on projects or on problems.  I won’t ask for your level of technical competency, because these other guys can’t judge that.  I just want to know you’ve interacted with them.”

I know, it’s creepy, but here’s the problem: there’s a lot of fakers out there with all the right answers, but no actual experience.  At the senior level, for somebody with five or more years of experience, they have to have met other people who can at least verify they’re database administrators.

4. How do you learn new things?

When new versions of database servers come out, how do you prefer to learn how to use ’em?

Ideally, I want to hear a DBA say they build their own server under the desk when the beta comes out, and start hammering it and getting their arms around it long before it gets released.  Not everybody has that much time, though – they might be stretched to the breaking point at their current job, with barely enough time to get their work done, let alone train on new versions.  In that case, I like to level-set them by saying, “You’re coming to work here because we’re not that kind of shop.  I want you to keep your knowledge current.  How much time per month do you need to keep current, and how would you do it?”

Some DBAs learn best by going to offsite training classes, and can’t budget their time well enough or maintain a train of thought to learn inside the office.  As a manager, you want to know that before you hire the person, so you can build that training budget into their salary.  (You don’t want unqualified employees, do you? Yeah, you probably do – I’ve worked for you, ha ha ho ho.)

3. What third party database tools are your favorites?

If somebody’s been doing database administration long enough to claim the title Senior DBA, they’ve built up a little wish list of database management tools they’ve seen along the way. Tool types might include:

  • Data modeling
  • Change management
  • Backup compression
  • Performance monitoring
  • Alerting

If they had a $X tool budget for their workstation, how would they spend it?  Forget corporate standards – I want to know what tools they’d use if they could pick on their own.  I’m not asking what software they’ve had experience using, because they might work somewhere so cheap that they’re restricted to native tools only.  They have to have at least seen some ads for products that looked cool, though.

I might follow up with questions about tools we were using in-house already by saying things like, “We’re currently using Product X for monitoring.  Have you seen it?  What’d you think of it?”

This does two things: it gives me an outside opinion about other tools out there that my DBAs could be using to do a better job, and it tells me how much the job candidate has seen.

2. Ask stressful questions.

In one of the earlier questions, you probably found an area of weakness for the DBA’s knowledge – heck, nobody’s perfect.  Go after that weakness.  Challenge it, make them uncomfortable, and really push their buttons.

This is your one chance to see how they handle stress before the brown stuff actually hits the fan.  Ideally, a senior DBA is someone who’s had their cage rattled more than once, and they’re comfortable under the gun.

No, don’t use an actual gun during the interview – but that reminds me of a plastic slot machine I used to keep on my desk at the office.  When you pulled the lever, it shot water straight at you like a squirt gun.  Always fun to see how somebody handled that one, but I wouldn’t let job candidates pull the lever.  That’s a little overboard!

1. Why are you here?

Zoom out to the big picture.  Tell me why you’re in this chair right now.

Is this some sort of career plan? Have they heard good things about the environment from another employee? Are they looking for an employee discount on products?  (It doesn’t work at wine & spirits companies, just for the record.)  Or are they just desperate?  Nothing wrong with desperation, but remember that desperate employees are desperate for something, and you’d better find out what it is.  If they’re desperate for money, it’s going to color the judgements they make.  I’m not worried about someone stealing data and selling it as much as I’m worried about someone taking the job and then bailing out shortly thereafter for just a little more money from somebody else.

Top DBA Interview Questions That You Don’t See Here

I’ve seen DBA managers asking questions about tough challenges that had come up recently in the shop, such as, “Pretend you have horrible TempDB contention, really seriously bad load, and you have to fix it.  What do you do?”  The candidate would then name off all kinds of answers while the DBA manager sat back and said, “Nope.  Didn’t work.  Tried that too.  Nope.”  The DBA manager feels more and more smug while the candidate feels more and more frustrated, and the end result is a DBA manager that thinks the candidate isn’t good enough for the job.

The problem with that scenario is that the DBA manager expects the candidate to be able to answer a question that had already stumped their own staff.  I always want to grab that manager and say, “Look, if I was interviewing YOU with this question, you’d have failed, because you couldn’t figure it out in sixty seconds either!”

If you’re going to ask a candidate a technical question, my rule of thumb is that it should take your existing staff the same length of time to answer the question.  If a technical challenge took your staff three days to figure out, then you should expect the job candidate to take that same length of time to answer the question!

Need to practice for your next interview?

We can help! We’ve got an online course that teaches you how to ace DBA job interview questions.


Spring SSWUG Virtual Conference

1 Comment

Ah, spring – that time of year when young men’s thoughts turn to T-SQL.  The next SSWUG V-Conference will be April 22-24th, and I’ll be giving a few sessions:

Log Shipping To The Cloud (300-level)

In an ideal world, we’d have a standby SQL Server in a disaster recovery datacenter, but we can’t always afford that luxury. In this session, I’ll explain how to log ship your database to Amazon S3, a cloud-based file service, and bring up a standby SQL Server in the event of an emergency. It’s like having your own disaster recovery datacenter, but without the cost – until emergency strikes.

Attendees will learn:

  • What Amazon S3 is, and how it works as a log shipping target
  • What Amazon EC2 is, and how you can turn on a new SQL Server in the cloud in a matter of minutes
  • Best practices learned from real-life deployments

Log Shipping Basics (100-level)

The boss wants you to plan for disaster, and wants to know the business will be protected if the production SQL Server goes down. Be armed with answers about log shipping with this presentation, which will cover the basic concepts and how to implement it.

Attendees will learn:

  • Best practices for log shipping setups
  • How to use the secondary server for reporting purposes
  • Risks involved with log shipping, and how to avoid them

Reaching Compliance with SQL Server 2008 (200-level)

To become a production DBA at a public company, hospital, bank or even just a security-minded firm, you need to understand the basics of regulatory compliance. In this session, you’ll learn how to talk the language and learn what tools are available in each version of SQL Server to make your job easier.

SQL Server Encryption (200-level)

Regulatory compliance needs are a big pain point for DBAs. How do we make sure our data stays safe? I’ll will explain the options available for SQL Server 2005 and 2008, do a Transparent Data Encryption implementation with SQL 2008, and demonstrate its strengths and weaknesses. Attendees will get scripts and sample Policy-Based Management policies.

If you sign up to attend, I’d highly recommend watching the live sessions on those days (22nd-24th) instead of watching the recorded sessions.  During the live sessions, some of the speakers actually attend, and you can ask them questions in the chat room.  I’ll definitely be there for all of my live sessions.


Free SQL Server code repository on Live Mesh

4 Comments

Whoa – Jamie Thomson had a brilliant idea, and it has nothing to do with selling Twitter shirts.  (Did I mention I got zero sales from that little endeavor?  Expect a Lessons Learned post in the next few days.)

SQL Server Scripts on Live Mesh
SQL Server Scripts on Live Mesh

He established a SQL Server code repository on Live Mesh.

Live Mesh is a Microsoft service for peer-to-peer file sharing.  You run the Live Mesh client on your machine, sign up for Jamie’s code repository, and the Live Mesh client creates a folder on your desktop with the SQL Server scripts.  You can contribute scripts, improve existing scripts, and all of them are synced automatically across everybody’s computers.

I’m all over this like developers on cursors.  My next thought is to figure out how to seamlessly integrate this into SSMS, Data Dude and Toad so that we can access these scripts with hotkeys.  I’ll figure out what I can figure out, and release a video podcast about this on SQLServerPedia on Monday.

There’s only a few T-SQL scripts in there right now, but I’m going to toss in the scripts from my own library and from SQLServerPedia.  The SQLServerPedia scripts will contain links back to SQLServerPedia so you can get explanations on how the scripts work the way they do.

You can thank him personally on Twitter, too – he’s JamieT.


What do DBAs learn in their spare time?

7 Comments

I got a question from a junior SQL Server DBA who wanted to make his way up to expert level.  He wanted to know if it would help his career to learn the free/express versions of other database platforms – MySQL, Oracle, Postgres, etc – or if it would be a distraction.

I have mixed opinions on this.  I don’t think it hurts, and I think you should pursue whatever you’re passionate about.  If you’re dying to learn more about other databases, then you should do it, because it won’t feel like work.  It’ll feel like fun, and the time will fly by.

On the other hand, if you’re doing it to get ahead in your career, I’d do two things.  First, decide how much time per week you’re going to spend learning new things.  Different jobs and different personal lives can end up with very different learning times per week.  If you’ve got a hectic day job and a full family life, you might be lucky to squeeze in ten hours a week of learning.  In that case, every hour counts, and you may want to hone the skills you need to use every day.

If you’ve got the luxury of a lot of time on your hands, then the second thing I’d do is make a list of the technologies you want to learn, in the order you want to learn them.  Look at what skills your coworkers and your seniors are using, the skills you wish you had in your arsenal, and think about when you would use those skills.

For example, I don’t know jack about PowerShell, and it’s got a lot of good buzz.  I’d like to learn it – but with what I do right now, I’m just not going to use it very often if at all.  Interesting technology, but for my priority list, it has to sink down farther.

If I was a junior DBA today in a small shop, making my way up to a larger shop or a senior position, my priority list would look something like this:

  • Business intelligence (because it’s really hard to find people who are good at it, and it’s a lot of fun to show the boss things you discovered in BI)
  • Performance tuning T-SQL code (because it’s never fast enough, and you can look like a hero when you speed up code)
  • C# (because it helps you work better with developers who rely on SQL Server)

When I was a senior DBA in the field last year, my list looked like this:

  • Storage area networks (because SANs really drive SQL Server performance)
  • Virtualization (because it’s coming at us like a freight train, and more SQL Servers will be virtualized every year)
  • Policy-based management (because I couldn’t get enough help, and I needed to automate more proactive checks)

While I’d love to learn more about other database platforms, it just wasn’t high enough on my priority list.  Your mileage may vary.  I’d be curious to hear what’s on other DBAs’ priority lists though!


Dopplr annual reports are – PDFs?!?

0
My Dopplr Annual Report
My Dopplr Annual Report

I use Dopplr.com to store my travel plans online so other travelers, like Quest employees and Twitter folks, can see when our schedules overlap.  It’s a fun way to meet up with people you might not otherwise get a chance to see.

They just put out annual reports for travelers summing up their year.  Interesting idea – at least, I thought it was when I saw the small thumbnails like you’re see here.

When my email came in from Dopplr notifying me that my annual report was available, I got excited and clicked on the link – and got timeouts.  DopplrHQ tweeted that their server was under load because everybody was downloading their PDF annual reports, and I asked why they didn’t just put the PDFs on Amazon S3.  They responded back saying the PDFs were indeed on S3, but you had to log into Dopplr.com in order to get your PDF’s file location.

Helloooo, bottleneck.

Thankfully they gave me my URL directly, so I grabbed it off Amazon S3 and opened it.  It’s gorgeous alright!  Very pretty, and there were so many things I wanted to click on to get more information, but…

It was a plain old PDF with no links.

How very Web 0.2.

And the funny thing is that people are busting down Dopplr’s door (and their servers) trying to get to plain PDFs that don’t link to anything.  Jeez.


Partition alignment in virtual machines

Virtualization
1 Comment

Partition alignment is a setup trick for disk-intensive apps like Exchange and SQL Server that can have a 30% or more performance impact on  your server.  The setup information is in my SQL Server Setup Checklist, and Jimmy May has more details on the mechanics of partition alignment.

If you run SQL Server in VMware, this still applies to you.  Today, Duncan Epping of Yellow Bricks (a VMware-focused blog) brings news of a new way to test whether your virtual machines have been set up correctly with partition alignment.  VMware admins can run a script on their VMware host, which scans all of their guests and makes sure their partitions are aligned.

The bad news is that it can’t actually fix the partition alignment – the only way to do that right now is to delete the partition, which means a complete backup and restore with a lot of downtime.  The article hints that NetApp is building a utility that will fix partition alignment on VMware guests on the fly.

For more details, read Duncan’s blog entry about VM partition alignment.


Wordle for BrentOzar.com

2 Comments

Michelle Ufford of SQLFool tagged me in her latest post, asking me to produce a Wordle map of BrentOzar.com.  You go to Wordle.net, put in your blog URL, and they produce this beautiful map of your most commonly used words from your RSS feed.

wordle-brent-ozar
Wordle Map of BrentOzar.com

Faithful readers of my blog will recall that I’d just done this a couple of weeks ago.  Michelle was on a two-week vacation, and evidently she came back and hit mark-all-as-read in her RSS reader.  Pfft.  Don’t tell her that I also posted the secret to untold wealth last week, or that I started a series of video podcasts on index fragmentation pointing to her script at SQLServerPedia.  That’s what she gets for going on vacation.  But I’ll humor her and post it anyway because it turns out my word map has changed a lot in the last couple of weeks.  (For starters, it doesn’t show “untold wealth” in huge letters anymore.)

Welcome back from vacation, Michelle!  Cheater.  Mark all as read, really….

Oooo!  And I have to tag people – let’s see, how about Tim Ford aka SQLAgentMan (because his blog posts have been funny lately, and I can’t wait to see the map) and Jason Massie aka StatisticsIO.


Amazon Web Services Explained

Amazon Web Services
Amazon Web Services

When I talk to database administrators, I hear a lot of questions like: What is Amazon S3?  What is Mechanical Turk?  How do these things matter to a real business?  I’ve got a story I like to tell around how to use these services, but for a couple of years I’ve held back from posting it publicly because I dreamed I’d build that business.  Those days are over – I’m too comfy in my job to start a business, hahaha, so here comes the story!

Pretend We’re A Survey Company

I used to work for a hotel & restaurant survey company.  Believe it or not, there’s good money to be made in comment cards, and it’s a much more complicated business than you might think.  Turns out it’s also a perfect candidate for doing business in the cloud.  Hotels are switching to email-based comment cards that lead to surveys on the internet, and it’s a whole new ball game.

Some of the challenges involved with running a survey company on the internet are:

Instant scalability needs.  When you sign large hotel chains as a client, you don’t have the time or money to pour into more IT resources.  The money won’t come in for months, but the data starts coming in right away.

Huge load fluctuations.  Everybody wants their month-end reports on the first of the month, and everybody wants high-end analytics that require a lot of number crunching.  You can’t precalc them ahead of time even on a daily basis because they rely on things like standard deviation, which have to be calculated on the whole set of results.  If we build a datacenter to handle these needs, it sits idle all but two or three days per month.

Worldwide user base.  Hotel guests all over the world take surveys around the clock.  Throw in language barriers – not only do your surveys need to be translated into many different languages, but even the survey responses have to be translated back for the hotel staff.  Hotels in New York City receive comments in many languages, but the hotel staff only speaks a few.  Every comment matters, and we have to get them into a language the hotel can understand.

Diverse source systems. Hotels want their front office computer systems to drive the survey process.  They want to send a survey to the guest the morning of checkout, automatically, without doing a lot of manual data shuffling.  That means accepting a lot of data feeds in a lot of formats, parsing and importing those, and then sending out the surveys.  We need a really robust set of pipes for our data.

Need to accommodate old-fashioned surveys – some hotels still use paper survey cards, or they might leave paper cards out on the desk for people who didn’t want to provide an email address.  These paper surveys may get into our system via fax or via scanner, but the end result is always an image of a survey card.  We need to parse that survey to determine who it belongs to, which checkboxes the user colored in, push the results into our database, and snip out the comment and contact areas to be manually transcribed by a typist.  These results also need to get into our monthly (or daily) reports just like the electronic cards.  Note that this makes our time demands even tougher – hotels will send in their paper comment cards on the last day of the month and expect them to be on the month-end reports the next morning.  (Customers – the bane of our existence, right?)

Amazon Web Services solve these problems.  It’s not the only solution, but it’s an intriguing solution.  But let’s not get ahead of ourselves – let’s design our ideal solution first, and then see how Amazon’s services work.

Our Ideal IT Solution Includes…

If we could start from scratch, we would design a system that includes:

Services, not servers. For example, I know I’m going to be storing images from comment cards, but I don’t want to start guessing when I need to buy more hardware, and I don’t want to buy too much that sits around idle.  I want a file storage service that charges by volume, because I can relate those costs back to specific customers easily.  Heck, I can give a discount to customers who don’t use paper cards, or I can charge extra for paper card image storage.  Want to keep your images online for six months?  No problem – here’s the charge.  (That service is Amazon Simple Storage Service.)

A data queue that scales. I want an Enterprise Service Bus, but without the crazy expense.  I need to be able to have a queue that takes in hotel guest information from all my customers, and I’ll have servers handling those results.  I need a queue that lists which comments need to be transcribed, another queue that lists which hotel results are ready to be crunched, and so on.  I don’t need to handle them instantaneously – a queue rather than a database would be fine if it would save me money.  (That service is Amazon Simple Queue Service, and it’s absurdly cheap: one cent per 10,000 messages!)

When I do need servers, I need to change numbers by the hour. When I can’t have services, like when I need to crunch complex information or when I need to import those paper survey images to determine which checkbox a user filled in, let me spin up and spin down servers with a mouse click – or even better, automatically via an API.  I want to be able to code something that will check the incoming survey queue results and turn on servers to accommodate demand.  (That service is Amazon Elastic Compute Cloud.)

A human translation service that scales. Machine translation sucks. Hard. It works great in theory, but it’s still not good enough to pass the sniff test by hotel general managers who speak multiple languages.  They spot machine translations from a mile away.  We have to use a human translation service that passes each comment through multiple people, and maybe uses a reputation factor to decide which translators are good (and therefore don’t need as much double-checking) and which ones are wasting our money.  (That service is Amazon’s Mechanical Turk, perhaps my favorite of the Amazon Web Services.)

And finally, I need a database. I don’t have complicated data needs – especially once I brought in that queueing service, which takes a lot of processing load off.  I just need to store basic data. It needs to handle a lot of throughput, but not necessarily have fast response times, because the heavy crunching is going on on my analytical boxes anyway.  In a perfect world, I’d have SQL Server – but I might be willing to make compromises here if I can get the rest of my needs taken care of.  Amazon has a lot of database options.

Our Ideal Solution Doesn’t Necessarily Include…

And let’s take a moment to look at what we’re NOT including, because that affects our cost equation too:

Point-in-time auditing. I don’t need to restore my entire infrastructure back to January 7, 2005 in order to examine financial records.  I need to be able to restore for disaster recovery, but otherwise, keep it simple.

Very high security. Don’t get me wrong, we need to keep one hotel from seeing another hotel’s data, but if they do, the world isn’t over.  This isn’t financial data or personal health data.  We won’t have anybody’s credit card, social security number, and we may not even need their address.  Sure, we’ll have their email address, and we need to guard that.

High-end business intelligence. This solution doesn’t necessarily restrict me from data warehousing and analytics: if I want that stuff, I can bring the data over to my own datacenter to do it, or I could run BI at Amazon, but high-end BI isn’t my first priority.  If I can get the rest of the solution right, I can live without it.  (I can hear the BI people loading their shotguns now.)

AWS: Greater than the Sum of its Parts

If you look at each of the Amazon Web Services pieces individually, they’re nothing amazing.  (Except Mechanical Turk – that is effing amazing.  Check out the Sheep Market.)  They’re just building blocks.  They’re not as strong or as cool as the building blocks you might use internally already – but then again, we’re professionals at building stuff.  Not everybody wants to hire an army of professionals like us to build out and maintain these systems.

I could get a survey company off the ground with zero infrastructure investment, and better yet, only pay for what infrastructure I need this month.  If I only have one small client today, I only pay by the month for that one small client’s needs.  If I sign Holiday Inn, I don’t sweat bullets wondering where I’m going to put all these servers or how I’m going to get the credit to buy them.  I still need to architect my coding solution in order to maintain a big jump in load – but I’d have to do that regardless of whether I owned the hardware or not.

I’m not only a cheerleader, I’m a client.  At one of my jobs, we launched a SQL Server podcast series.  Visitors could watch video in their browser, subscribe with their iPods and Zunes, or download the files for local viewing later.  I had absolutely no clue whether anybody would sign up, but I was faced with hosting the files.  How big of a hosting plan would I need?  What if I got too big of a plan, and nobody came?  What if I got too small of a plan, and we got overwhelmed?  How fast could I upgrade or downgrade the plan?  Enter Amazon Simple Storage Service, or S3: I simply paid for what I use.  We got almost 9,000 downloads in our first month, and I was completely surprised – I hadn’t even looked at the download numbers until the bill came in.  (Seriously, people, stop watching videos and get back to work. Or play. Whatever.)  As I write this, we’re on track for 15,000 this month, and I haven’t had to do anything at all – Amazon just handles the infrastructure.  Best of all, it’s cheaper than any podcasting service I’ve found!

It’s not perfect.  My biggest concern as a startup would be lock-in: a lot of these services simply aren’t available from other vendors yet.  If I code my solution to work with Amazon Simple Queue Service, and Amazon decides to crank up costs tomorrow, I have tough work ahead of me to build my own queue service or buy somebody else’s.  But at the same time, if Amazon did that, there’d be a number of Amazon customers with that same business need, and someone would spring into action to service that need.

And yes, there are outages, but frankly, the big providers are doing pretty darned well.  When you factor in the peace of mind of not sweating over server firmware upgrades, air conditioning and power needs, and all the other “fun” involved with managing a datacenter, it can be compelling for business developers who just want to get their application seen on the web.


Top 10 Questions To Ask During an Interview

Stop!  Before you accept that cushy job, make sure it’s actually as cushy as you think it is.  Managers have a long line of questions to ask in an interview, but what about you as a candidate?  What questions should you ask?

Here’s my top ten questions to ask before taking an IT job:

10. What happened to the last person in this position?

Did they quit, did they get promoted, did they die of a stress-induced heart attack, what?  Rarely is a position created completely from scratch, and you want to know why the last person left so you can avoid their fate.  If they’d been around for less than a year, I would ask the same question about their predecessor as well.

9. Have you had any layoffs in the last year?

Nobody’s going to tell you if layoffs are scheduled for the future, but you can at least ask about the past.  Maybe they did a round of layoffs and they’re perfectly positioned for future growth, but maybe they’re spiraling down the toilet.

8. What’s the on-call rotation schedule?

Will you be sharing the pager with someone, on call one week per month, or on call at all times?  If you’re on call, do you get a company laptop and wireless aircard to be able to respond, or do you have to hoof it to the nearest desktop, or heaven forbid, the office?  And to follow that up…

7. In the last year, how many times has the on-call person been called?

From 1997 until 2008, I was on call 24/7 – but I got maybe one call per month.  That kind of load is do-able, but if the on-call phone is ringing every other night at midnight, forget it.  Or at least budget psychiatry bills in with your expenses.  Speaking of expenses…

6. Is there a training or travel budget for this position?

In your struggle up the career chain, you’ll reach a point where suddenly you’re expected to do a little learning on the company dime in order to keep your skills sharp.  It never hurts to ask.  If the answer is no, ask if you would be paid your salary while attending an industry conference like the week-long PASS Summit on your own dime.  I know employees who have to take vacation time to attend these conferences, and that really hurts.

5. Can I access online tools to do my job?

More and more companies are barring employees from surfing the web.  This isn’t just a quality-of-life issue – although allowing Twitter would be nice – but it can also make life tougher when troubleshooting an IT problem.  The best help is on the web, not in Books Online.

4. Can I schedule vacations around the holidays?

I’ve worked in IT shops where everybody wanted to take vacation around Christmas week or New Year’s, but the low guys on the totem pole weren’t allowed to do it.  Seniority dictated the vacation schedule, so the old pros got the holidays off while the new kids on the block got shafted.  It shouldn’t dissuade me from taking a job, but it’s something to think about.

3. How important is my work to the company?

I’ve worked in shops where my database platform was the black sheep of the family, the platform of last resort.  I’ve worked in shops where it was seen as highly visible and mission critical.  The more valued this position is, the more you’ll be seen as an asset to the company – and less likely to be looked over at raise time, or worse, laid off.

2. What’s the telecommuting policy?

Database administration lends itself really well to working from home.  Denny Cherry and I sit around our houses most of the time, while some folks are cursed with driving in to the software factory every day.  Telecommuting cuts your expenses, increases your productivity, and raises your quality of living.  Some companies get it, and some don’t – but ask before you start.  This is one of those policies that probably isn’t going to change after you take the offer.

1. What does “success” look like for this position?

Here’s how I like to phrase this to my future manager: “90 days after I start, if you’re talking to your boss about what a great job I’ve done in my first 90 days, what kinds of things are you raving about?  What are the tasks that you wish this new employee could accomplish?  What would make you the proudest?”

The answer to this isn’t written in the job description.  We’re talking about things that will make your manager jump up and down with excitement, things that will make you a seriously valuable employee, and things that you want to put first on your task list when you start.

And a Bonus Question: Will I have to sign any non-compete agreements?

In IT, the answer to this is often yes, and they can be pretty restrictive – especially at consulting companies.  It’s not uncommon to sign away your rights to work for any competitors or any clients for years after you leave the company.  In a tight market or in a small town, that can pretty much eliminate your job options.  Better to find out ahead of time rather than after you’ve already accepted the offer, quit your old company, and started filling out your new hire paperwork on your first day at the new job.

More Articles on Interview Questions

If you liked this, here’s a few more of my posts about interview questions for job candidates:


Interview Tip: Don’t Stress Out

Professional Development
5 Comments

I was just talking to a fellow blogger who’s going through an interview process, and we touched on something that bears repeating here.

Interviewers don’t always expect you to know the answers.

Sometimes they ask you a string of ugly, nasty technical questions that you can’t possibly have seen before.  They might not be testing your technical prowess or your research abilities, but instead, they may be testing your ability to keep calm under pressure.

Think back to the last time you had a server crash or an application fail.  Managers and business folks come running in asking all kinds of ugly, nasty questions.  “When’s it going to be back up? What caused this?  You did this, didn’t you? Is that whiskey in your coffee cup?  Did you try to quit sniffing glue this week?”  I know.  I’ve been there.

Asking tough questions in an interview is a way to see if someone will crack under pressure.  I rarely do this as an interviewer unless I smell weakness (it smells like the opposite of bacon), but when I do, I go after it.  I can’t have somebody on my team who throws up their hands and screams at the first sign of trouble.  In two cases, I’ve seen trouble during the interview process: one candidate actually laid his head down in his hands on the table and spoke without looking up.  In both cases, I didn’t expect them to know the answers to the questions – I just wanted to see whether or not they’d freak out, and they did.

And of course, this being reality, we hired them anyway.  They both still work in their respective jobs though I’ve moved on, and they both still freak out whenever something breaks. <sigh>

More DBA Career Articles

  • Moving from Help Desk to DBA – a reader asked how to do it, and I gave a few ways to get started.
  • Development DBA or Production DBA? – job duties are different for these two DBA roles.  Developers become one kind of DBA, and network administrators or sysadmins become a different kind.  I explain why.
  • Recommended Books for DBAs – the books that should be on your shopping list.
  • Ask for a List of Servers – DBA candidates need to ask as many questions as they answer during the interview.
  • Are you a Junior or Senior DBA? – Sometimes it’s hard to tell, but I explain how to gauge DBA experience by the size of databases you’ve worked with.
  • So You Wanna Be a Rock & Roll Star – Part 1 and Part 2 – wanna know what it takes to have “SQL Server Expert” on your business card?  I explain.
  • Becoming a DBA – my list of articles about database administration as a career.

Why back up? Ask JournalSpace.

9 Comments

When your managers ask you that question, point them to the sad story of JournalSpace.com. The company evaporated on December 30, 2008 because they didn’t have a backup.

They were relying on their RAID drive mirrors to keep their data safe, but that only protects you from hard drive failures – not from application errors or server errors or heaven forbid, malicious users who delete data.

JournalSpace Closes Up Shop

Slashdot story covering JournalSpace

In case JournalSpace takes down their page about the issue, I’ve mirrored the text in my full blog entry – hit Continue Reading to read it.

(more…)


Ozar Family Portraits

4 Comments
The Ozars
The Ozars

We had a photographer come to Dad & Caryl’s house over the holidays while we were there with my sister and her stepson, and you can check out our family portraits on Flickr.

The amazing part: this is the first actual picture of Erika (my better half) that I’ve been allowed to post online!  She’s rabidly anti-publicity and doesn’t like her photo taken, but she liked these enough to let ’em go online.  She’s the one at the bottom left of this photo.

I know, right? She’s totally beautiful – that’s even my nickname for her – but she just doesn’t like her photos online.  So there you go – she really does exist, and yeah, she’s a cutie.

My hat, not so much.  Caryl, my stepmom (right above Erika) got us all gloves and hats for Christmas to wear for the photos.  And of course, wouldn’t you know it, she’s the only one in the photo who doesn’t have a hat on!  Didn’t notice that until just now.


Tom LaRock and Pat Wright now on PASS Board of Directors!

#SQLPass
0
Yes We Can!
Yes We Can!

Congratulations to Tom LaRock, aka SQLBatman, and Pat Wright, aka SQLAsylum, who just got into the PASS Board of Directors!  Two board members had resigned, and Pat & Tom was appointed to one of those two positions.  I’m excited because I believe these guys will make great board members, and I’m even more excited to see that the PASS Board saw that same thing.

Everybody I’ve met on the PASS Board has been enthusiastically dedicated to the community.  These people pour their heart, soul and spare time into helping SQL Server DBAs all over the world, and for every one of the directors, there’s dozens of people in the PASS volunteer organization doing the same thing.  I just can’t encourage DBAs enough to sign up for a free PASS membership and to attend the PASS Summit next year if they can.

Tom’s blog post about making the board shows that he’s also going to be a great politician.  He says:

“A very special thanks to my consigliere, Brent Ozar. His guidance as my campaign strategist was invaluable…”

Let me translate that into layman’s terms:

“If you’re looking for bad campaign ideas that will make sure you lose, talk to Brent.  His advice is worthless.”

Hahaha, I kiiiid, I kiiiid.  (Not really.)


About those blogging rules…

Blogging
6 Comments

A couple of weeks ago, I blogged about some guidelines for getting started with technical blogging.  I’ve now gone and broke one of them – not editing your WordPress template.

When CSS sharpie Jeremiah Peschka read of my desire to make my site span the full width of the page, he offered to give me a hand.  Lo and behold, my web site is huge!  Ginormous, I tell you!  He made all kinds of fixes to the CSS in the template I use.  The drawback of that is I can no longer upgrade the template, but I’m probably set for a while.

I need to redo the images going across the top of the page, and I need to throw more stuff in the sidebars, but it’s a journey that never ends.  In the meantime, though, I have so much hot fresh widthness that the Enzyte guys are jealous.

If you need CSS help, ping Jeremiah or follow him on Twitter.  He’s also quick with the JQuery magic.


New Year’s Resolutions

2 Comments

David Stein of Made2Mentor.com posted about his professional New Year’s resolutions (as opposed to personal ones), and Denis Gobo tagged me too, so here goes.  I updated my GTD priority lists on RememberTheMilk during my vacation a couple of weeks ago and I’ve already forgotten them, hahaha, but that’s what RTM is for.

  • Learn SQL Server Reporting Services. For years, I’ve sworn I didn’t want to learn SSRS because I didn’t want to be a report writer.  Report writers aspire to become DBAs, not the other way around.  The thing is, SSRS is just too good of a tool not to use, and I think I can prototype things that will help DBAs do their jobs better.  (Dave and I shared this goal.)
  • Leverage data mining to make DBA chores easier. I keep dabbling with the SQL Server Data Mining in the Cloud plugin, and I’ve got a few ideas about how I can make DBAs’ lives easier with this tool too.  I’ve blogged about how to use it with Perfmon, but that’s just the tip of the iceberg.
  • Get my Microsoft certifications. We DBAs give Microsoft a lot of crap because the certs are too easy to get, and at the same time, I haven’t had a cert since 1999.  If they’re so easy, I need to get up off my rear and get ’em all.  Every time I look at Denny Cherry’s site, I get cert envy.  He’ll always have me beat, though, because I don’t have SharePoint skills.

I want my to-do list to be longer, but to be honest, my big resolution this year is to become a confident sailor.  We’re living on a lake this summer, and I’m determined to get out there every weekend and learn the ropes.

Now, let’s see who else has been active on Twitter the last couple of days – seems like most people have packed it in for the winter.  I’ll tag: