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?


1 Answer 1


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.