When hiring a production DBA, ask them, “In terms of file size, what’s the largest database you’ve worked with?”
In a perfect world, we’d only hire very experienced candidates, people who’ve worked with larger databases than we’re dealing with. In reality, though, we can’t always afford those candidates - if they’re even available at all. For some positions (like a junior production DBA with a senior already on staff), we can live with a lower level of experience - someone who can grow into the position. In other positions (like a senior lead), we can’t afford to have them learning on the job.
Non-DBA readers: to find the answer to this question, remote desktop into the shop’s largest SQL Server and do a search for files with MDF or NDF extensions. Add all of the file sizes together, and make a note of the largest one. For example, the total size might be 200 gigs, with the largest file being around 100 gigs.
I generally classify servers into these vague size groups, going by total size of all databases on the server:
- Under 20 gigs - these servers almost run themselves once the basic maintenance plans are set up. The Windows system admins manage the SQL Server without training, and management takes less than an hour per week. Everything is installed on the C drive without serious performance issues.
- 20-100 gigs - The system admins encounter some performance bottlenecks. Initial setup should be done by a DBA, and basic maintenance plans may require some planning and regular attention. Requires some performance tuning, but can be learned by a new DBA. Management takes less than 4-8 hours per week once the server is set up correctly, but the initial configuration repairs (when a DBA takes over for the first time) may take a few weeks.
- 100-250 gigs - Requires a full time database administrator on staff, although not one DBA per server. Backups must be done with specialized backup compression software, index and statistic updates may run for hours. Performance tuning should be done only by staff with experience. Management takes 4-16 hours per week once the server is set up by a trained DBA, but initial configuration repairs can take a month or more.
- Over 250 gigs - Even the simplest tasks require experience from other servers in this tier.
Database administrators have a tough time upgrading their skills from one tier to the next without hands-on experience. A DBA can manage more servers of the same tier without training, but the larger the server gets, the more planning and training it takes to do a good job on maintenance.
DBAs will also rarely step down in size, because pay goes along with the size of the environment. If the candidate says they’re used to working with terabyte-sized data warehouses, but they’re willing to take a job managing a couple of 100gb servers, start asking why.
If the company can’t find or can’t afford a DBA with experience on their size of database servers, there are three workarounds:
- Training from an experienced local mentor. Ask each candidate a tough question: “If you ran into a problem you couldn’t solve, do you have anybody in town that you could call in to help?” They might have a contact, someone they’ve worked with before, who would be willing to lend a hand. If not, there’s always consultants, but their skills can be tough to judge too. Expect a junior candidate to need mentor help for a few days per month when upgrading their skills from one tier to the next.
- Buy software to make the job easier. Companies like Quest, Idera and Red Gate provide a lot of tools to automate database administration. They build experience into the tools, making it easier for junior DBAs to pinpoint performance bottlenecks, solve index and statistics problems, and automate manual tasks. Sure, the software costs money, but the upside is that a junior DBA with good software tools can sometimes outperform a senior DBA who does everything by hand. (That excludes the >250gb tier, though - get an experienced pro for that tier.) Another advantage is that these tools persist even when the staff turns over, and they’re reusable over time.
- Send the DBA to a training school or camp. I have to be honest: I hate this option. The trainers are all too often “book experts” who don’t have real-world experience. The school curriculum moves at a fast pace, spending a set amount of time on each of many subject areas that the junior DBA may not need help with. Instead of spending a week at a boot camp covering a zillion topics, the junior DBA would get much more help from a week of targeted, hands-on time with an experienced pro looking at their system’s specific problems. That way, the junior learns exactly what’s applicable to the problems their company is facing, not canned solutions for things they won’t encounter for months or years.















on Feb 7th, 2008 at
Just for fun, I’m going to come up with interesting things that “SQL” could possibly stand for, since I obviously have no idea what you are talking about. (If my silliness is going to offend some of your more serious readers, just let me know and I’ll stop. Wouldn’t want to embarrass you!”
SQL: Squirrelly Querulous Lynchings
tee hee hee. I’m going to have fun with this!
on Feb 7th, 2008 at
It’s Structured Query Language, but I like the sounds of Salsa, Queso and Lager.