I get emails quite often from DBAs, mostly from junior DBAs or those new to the field, but occasionally an intermediate level, all of whom are wondering where should they focus, what skills are required, etc to be a successful SQL Server DBA. Since I am only a SQL Server DBA (for now 🙂 ) I can only try and give my opinion from this viewpoint. I suspect that for Oracle, DB2, MySQL, or any other DBAs, the outlook and career advice might be quite different.
Before I begin, let me say this is only my opinion and not backed up by statistics, facts, or anything other than my experience. One of these days, I will update my resume to a detailed vitae so those who read my work may better understand what experiences have shaped my opinions. But for now, this is what I think.
The Outlook in November 2000
As I write this, SQL Server 2000 is a little over a month old and represents the fifth evolution of the product from Microsoft (those being, IMHO, v4.2x on OS/2, v4.2x on Windows NT, v6.x on Windows NT, v7.0 on Windows NT, SQL Server 2000 on Windows 2000). I have seen the product grow and evolve from a low-end client/server database for workgroups to the current record holder of the TPC-C benchmarks. Now I know what benchmarks are worth, but this is still an impressive feat.
SQL Server is still making inroads as a low cost RDBMS that is easy to administer and develop applications against. While the recent changes to the licensing model may change this, for now it is a very inexpensive, yet widely adopted technology. It is very easy to install on anything from a desktop to a multi-processor server and the inclusions of many wizards for most tasks make it simple for anyone to create and setup a database (I could probably teach my eight year old to install the server and create a database).
The ease of developing applications in VB and other 4 and 5GL languages with their wizards and templates also enable rapid development of applications and prototypes using SQL Server. I have seen quite a few Internet startups begin developing applications using SQL Server because it was much easier for the developers and network administrators to setup and begin working with. I have never installed Oracle or most of the popular RDBMSs. I did install MySQL and that was pretty easy, though I have not developed anything against this. I will say that I think regardless of the truth, the perception is that SQL Server is very easy to install and administer (though there is still skill required to do this well).
Enough of the marketing speak and a little disclosure. I do not work for Microsoft, and do not receive any compensation from them. I do own their stock, think it is a good company and they develop good, widely accepted products that have provided me with a great career. I have not had the need or much of an opportunity to develop on Oracle or other RDBMS, but would be happy to if I get the chance. The bottom line is that there are more than enough jobs with SQL Server, so do not worry about job security.
Skills That Are Hot
Today’s DBA should be a jack-of-all-trades and a master-of-one (SQL Server). Understanding how a network operates and computers communicate is important in the era of distributed applications and multi-server transactions. The Internet and World Wide Web are used in so many applications that to support and troubleshoot applications really requires knowledge of the differences between an Internet application and a client/server or local LAN application. I really think that the skills the MCDBA requires are good to learn. If you pursue this certification, it will behoove you to really learn about the Operating Systems and the network as you study. If you get a certification without understanding the concepts, you do more harm than good to everyone in the industry.
There are also a number of areas in SQL Server that are growing rapidly. XML has really started to gain in popularity and I see more companies everyday starting to incorporate this technology into their applications, especially inter- and extra-net applications. You could spend quite a bit of time in this area if you like dealing with the exchange of data and the challenges in making this work.
Data warehousing is growing extremely fast according to most of the press that I see. The incorporation of the Analysis services and Excel’s OLAP capability are really increasing the adoption of this. If you enjoy working with lots of data and using statistical techniques to analyze this data, you could probably make a twenty-year career in this field.
Of course, there are a number of people who enjoy the challenges of administering a server or two, getting four or five “nines” of uptime and troubleshooting problems in real-time. Not too many people like this, but it can be a challenge and I still enjoy developing administrative solutions (see my series on automating the gathering of information).
Lots of Talk, What’s the Advice?
As a DBA, I find the work to be the same at most every job that I have had. The work is pretty much always standard RDBMS stuff and the pay is about the same at most companies that are looking for a senior DBA. So how do I choose a company? I look for a good team environment, people I like, a fairly low-stress job, few database servers and good management. I am fairly far along in my career. I have more experience with SQL Server than most people who interview for the same jobs as me. Lucky for me, in this economy, I can pretty much pick and choose.
My advice for those getting starting in the SQL Server world is threefold. First, you need to develop a solid foundation in SQL, specifically T-SQL, but try to stick to ANSI standards as much as possible. There are lots of resources in the Internet and some great books out there (see my book reviews). Also send your code to colleagues and friends and get their opinions on how it looks.
Second you should understand SQL Server itself. Again, use all the resources you can and read and learn as much as possible. Columns like this one are good places to learn, but be sure to learn what Microsoft publishes first. This will give you a solid foundation from the people that have written the product. I would bookmark these sites and read everything on them:
http://www.microsoft.com/sql (read all the whitepapers)
http://www.swynk.com/sysapps/sql.asp (lots of great articles and opinions from a variety of sources)
http://www.mssqlserver.com/faq (the primary FAQ on the Internet)
I also have some book reviews you can check out. A number of columnists on the Internet do the same. Most SQL Server books contain about 80% of the same information. So spend a few minutes browsing and pick one that seems easy to read.
Also, be sure you experiment with what you are reading. Follow the examples and write some of the SQL code in the articles and see what happens. Setup your own experiments to understand what the author is writing about to be sure you understand. Many times you will read differing points of view on the same topic. Both authors may be correct, or one may be wrong in your environment. If you do not do some R&D and testing, you may not find out which it is until something breaks.
Lastly, continue to learn more about different technologies and skill areas to learn what you like as well as round out your knowledge base. I firmly believe one of the main reasons for my success is a strong background in networking and software development before I started working with databases. It has helped me solve problems and develop innovative solutions (I think) because of my understanding of the whole environment outside the database.
The main point in all of this is that you should pick the area that you are interested in and spend time working with it. Take some time and develop “pet” projects that incorporate the technologies you want to learn. Most managers will allow you some leeway to “research” a technology that is related to your job. Who knows, maybe you will come up with a solution that no one thought of. Most of my ASP experience was gained during such projects where I hacked around and built an administrative subsystem for myself that saved quite a bit of time and allowed me to distribute functionality to end-users that needed it (like in administering users).
I firmly believe after ten years in this industry and a few more in others, that you should choose to do what you like. You will spend more time at work than at home. So you better enjoy that time. You will spend more time with colleagues and co-workers than your spouse and children. It had better be worth it. No amount of money or benefits can make up for the time you lose with those you love. Keep that in mind. I enjoy and think I am well paid for hour 1 through hour 40. However, I could not put a price on and do not think my employer could pay me enough for hour 50 through hour 60. Those are almost always reserved for my kids.