As a SysAdmin who "wears all the hats", I find myself increasingly pulled into database projects. I took one database course back in college and since then I've always scoured resources online (like StackExchange) when working on databases/SQL. But there's always something I do and I'm never sure about such as security & perfomance in large environments.

If a DBA were to fully design/create a database/schema from scratch and maintain it from then on, what do you expect a DBA know? What are things a DBA should never do, or always ensure it is done? What have you experienced in a professional environment that education never prepared you for?

closed as not constructive by Mark Storey-Smith, Leigh Riffel, Nick Chammas, JNK Jun 25 '12 at 11:04

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance. If this question can be reworded to fit the rules in the help center, please edit the question.


First - you must be able to backup and restore a database. You must know how to set up a recurring schedule to backup both the database and the transaction logs.

You should know what other maintenance is required periodically such as updating statistics.

You should understanding indexing - how to create them and when to create them and when not to create them.

You should understand how to read query plans - execution plans or explain plans depending on the db backend.

You should understand datatypes and why using the correct one is important. You should also understand why every table needs a PK and how to set up PK/FK relationships and you should never allow application developers to think this stuff should be handled by the application and not the db.

You should be familiar with database normalization.

You shoud read about performance tuning and database internals for your particular database and be proficient in advanced SQL.

You should know how to monitor performance of your database.

You should know how to set up new users and use roles based security.

You should be able to install the database on a new server.

I'm sure there's more, but this is a starting point.

Not the answer you're looking for? Browse other questions tagged or ask your own question.