June 19, 2008 at 10:43 pm
OK this isn't tangible: How to problem solve. SQL Server is way too big a subject to memorize it all --especially if you are wearing both++ hats. Can this be taught? Learned? Haven't seen it yet.
Tangible: They should know how to import and export data in a couple/few formats. Could be via wizard, bcp, or dts - just as long as they can do it somehow. In addition to SQL server security they should have a basic understanding of Windows server security.
June 20, 2008 at 1:27 am
Hmmm. Not sure I could rank the following, but here's a bit of a brain-dump.
1. Agreed with the article on keeping the data safe (i.e. able to take both regular, scheduled and also ad-hoc backups, and able to use the results to restore as appropriate for the business you're in). This should, IMHO, be a sufficiently strong skill that it can be adapted to overcome quite a few hiccoughs, since if you need to use it in anger, each situation'll be different.
2. A really nebulous one; the ability to understand data. To think in sets, if you wish. To be able to see how different sets of data fit together. In the same way some people are natural linguists, some people are naturals at understanding the data within a database.
3. The ability to a) listen, b) explain and c) make non technical people comfortable with you. DBAs aren't just techies; they're an important interface between IT and the rest of the business. A corollary to this is that many DBAs will end up performing some form of business analysis tasks too, so the ability to identify needs and then translate them into proposed solutions is an important adjunct.
4. Agreed with SQL skills (I'd open it out from just T-SQL, since a DBA should be able to get themselves comfortable pretty quickly with new RDBMS platforms, such as Oracle or MySQL - databases are databases, after all).
5. Agreed with security; a good familiarity with the security concepts within your RDBMS platform of choice, and a good grasp of what you'd need to learn about a new platform if you wanted to switch.
6. The ability to know your limitations and also to work outside your comfort zone. Problems come up, but often DBAs are the last in the escalation chain, so they'll need to be comfortable entering into "uncharted territory". However, this isn't good if the DBA's over-confident and trigger happy.
OK, 6 points instead of 5. Bit of a Spinal Tap question. Sorry.
Semper in excretia, suus solum profundum variat
June 20, 2008 at 1:38 am
[p]I'm a developer, not a DBA, but I've worked with a large number of DBAs. I ought to know what the core skills for a DBA are but I believe that the real difference between an exceptionally good DBA and a run-of-the-mill one is all about attitude. This comes across strongly in Brad's book too.[/p][p] Regular readers of my Blog on Simple-Talk (mostly my devoted older sister) will know that the two best DBAs I worked with in the past were an ex riot-policeman and a feral cockney with a police record. Now I work with a DBA who is an ex-television actress. None of these DBAs took the conventional route into the profession. What they all have in common is that instinct for self-preservation that inspires them to expect, and prepare for, the worst. Developers are all crazy optimists, whereas the exceptional DBA scents trouble everywhere, and prepares for it. It is that instinct that drives them on to assimilate the skills, and put in place the procedures to meet every eventuality, and head off problems before they happen.[/p]
Best wishes,
Phil Factor
June 20, 2008 at 1:42 am
I'm a Production DBA and I like to describe the essential tasks in the role thus;
1. Facilitate business continuity (this includes maintenance, capacity planning, failover etc..
2. Manage data security
3. Performance managment
I think Production DBA's provide a vital and often under valued feedback loop to development with their experience in how things work in a real world operational environment. We have experience with aspects developers often miss, such as; how will we carry out upgrades to this application? how scalable is it? what's the disaster recovery plan? how and when will maintenance be carried out? ...
June 20, 2008 at 3:34 am
I have distilled my 6 points for the budding DBA...
1) How to create a database (seems obvious, but nevertheless...)
2) How to backup and recover a database (with options)
3) How to query a database (as Steve said)
4) How to create/manage logins, users, security, etc. (Steve again)
5) Understand the system essentials: memory, CPU, disk (oh God, the disk!)
6) Learn the tools (BOL and profiler are your friends)
I'm sure indexing fits in there somewhere but it's a bit more advanced.
and...
Sign up to SQLServerCentral.com because the answer to your SQL question is there 🙂
James Stover, McDBA
June 20, 2008 at 5:27 am
I am not even sure I would put any technical skills on the list. I agree with michanne that number 1 is problem solving skills. I work on mostly small projects where one person does everything, so my list will be different that some. I was trained as an Engineer where the best piece of advice I ever got was to not try to remember or learn everything, just learn where you can get the info when you need it.
1. Problem solving skills - the ability to analyze problems and identify and prioritize errors
2. Communication skills - even if you are great at your job, if you can't communicate, you won't be effective
3. Contacts in the industry - one person can't be expert on everything. You need a network of experts to tap into.
4. Desire to learn - Desire to expand the knowledge base and not focus on one, sometimes esoteric aspect of databases
5. Industry experience - understand how your work will be used. After all, a theoretical perfect solution that doesn't solve business problems isn't very valuable.
I might replace number 5 with various technical skills, but I think factors that set apart the very good from the average are "soft" skills. I have seen too many DBA's and programmers with great technical skills who are not effective because they lack people skills or don't have any perspective about how their work fits into a business model. If I wanted to add a few more to the list, I would add these that have already been mentioned.
6. Data integrity skills - backup schemes that work, data constraints and defaults that make sense.
7. Understanding security issues - Not only is this how to secure data, but what data should be collected. Current legal issues make this a very hot topic.
8. Ability to see the whole picture or see patterns - a nebulous skill, but one demonstrated by experts. If you can't see how your works fits in the big picture, the work may be technically great but not meet the needs when placed in context.
An interesting design caveat was presented to me once. Just because you can, doesn't mean you should.
June 20, 2008 at 5:35 am
James Stover (6/20/2008)
I have distilled my 6 points for the budding DBA...1) How to create a database (seems obvious, but nevertheless...)
2) How to backup and recover a database (with options)
3) How to query a database (as Steve said)
4) How to create/manage logins, users, security, etc. (Steve again)
5) Understand the system essentials: memory, CPU, disk (oh God, the disk!)
6) Learn the tools (BOL and profiler are your friends)
I'm sure indexing fits in there somewhere but it's a bit more advanced.
I really like this list. I'd add that you really need to be able to think outside of the box if you're a DBA... you just can't approach every request you come across using the same methodology. I think great DBAs are the ones who can come up with inventive solutions when everyone else has given up.
June 20, 2008 at 5:49 am
I have to agree with many of the prior posters--soft skills are the most important.
1. Communication - understand the requirements as well as communicate the solution
2. Problem solving - work the problem, don't guess
3. Time management - you can often find yourself on many people's critical path
Techie skills
4. Performance - a complex activity that is difficult to teach if you don't have it intuitively.
5. Business continuity - every business wants zero down time -but are they willing to pay for it? (see 1 above)
(My background is primarily as a dba/developer on large development projects)
June 20, 2008 at 5:58 am
Everyone has covered it so well up to this point, especially Phil Factor's bit. The one technical thing I would add is that a new DBA must learn the logical processes that a query goes through. Read Chapter 1 of Inside 2005 TSQL Querying. The more people who understand that, the less completely horrific code we'll have to tune later.
"The credit belongs to the man who is actually in the arena, whose face is marred by dust and sweat and blood"
- Theodore Roosevelt
Author of:
SQL Server Execution Plans
SQL Server Query Performance Tuning
June 20, 2008 at 6:03 am
its been touched in before, but disaster recovery has to be in there, being able to get the app up and running again no matter what is lost - from a single incorrect deletion to loss of the data centre. Which means having the procedures in place and documented.
---------------------------------------------------------------------
June 20, 2008 at 6:19 am
I'm a developer looking in at the DBA from outside.
Backup/Disaster Recovery gets my nod for first skill.
I'm not sure if it's correct to call it a skill, but performance tuning gets my second place vote.
When you think about it, why have a database?
1) You want to put your information someplace where you're certain you can get it back.
2) You want to be able to get at your information in an efficient manner (I once had an instructor who stated that a trash can is a database of sorts; you just can't find anything quickly).
Yes, communication skills and good attitude are a delicious icing on the cake. They'll get you shuffled higher on the applicants list if you have them. However I'd say that getting the job done well in the technical arena is still the reason we hire (barring a total sociopath, of course). Overall managers and CEOs just want their data, and they don't want to wait a long time for it.
___________________________________________________
“Politicians are like diapers. They both need changing regularly and for the same reason.”
June 20, 2008 at 6:25 am
Someguy (6/20/2008)
I'm a developer looking in at the DBA from outside.Backup/Disaster Recovery gets my nod for first skill.
I'm not sure if it's correct to call it a skill, but performance tuning gets my second place vote.
When you think about it, why have a database?
1) You want to put your information someplace where you're certain you can get it back.
2) You want to be able to get at your information in an efficient manner (I once had an instructor who stated that a trash can is a database of sorts; you just can't find anything quickly).
Yes, communication skills and good attitude are a delicious icing on the cake. They'll get you shuffled higher on the applicants list if you have them. However I'd say that getting the job done well in the technical arena is still the reason we hire (barring a total sociopath, of course). Overall managers and CEOs just want their data, and they don't want to wait a long time for it.
That's a very interesting slant (and I don't mean "interesting" in a condescending way, either). I can certainly understand what you mean, although I'd add that being able to store and efficiently retrieve irrelevant data ensures the data stays as data and fails to become information. I'd suggest that the business doesn't want data, but wants information, and you can't work out how to provide that unless you communicate effectively and get to understand the business.
Not to say I disagree with your point that solid technical skills are very important; just that I'm not sure I'd agree that they can be dissociated from the "soft" skills.
Semper in excretia, suus solum profundum variat
June 20, 2008 at 6:27 am
In addition to everything else that has been said they need to have a good understanding of NULL values and how they are handled.
June 20, 2008 at 6:33 am
The first skill is knowing how to find the solution to a problem that is not readily solved. Anyone can do their day-to-day job. It's when the job goes off-track that a good DBA shows himself. Yes, it's important to be able to create, backup, query, maintain, and even delete a database. It's also important to learn to do things not understood.
Maybe this is attitude (as mentioned above). A good DBA (developer, tester, or anyone), must believe that the job is important in its own right in that it provides value to "customers" down the line, and that keeping the customer happy is the reason for the job. So knowing how to solve a problem (even one not yet encountered) is probably the most important thing to know.
So the most important skill isn't a skill, it's a combination of attitude and willingness to learn.
best,
Jim.
Viewing 15 posts - 1 through 15 (of 60 total)
You must be logged in to reply to this topic. Login to reply