With each new release of SQL Server version, there is something new to learn. In SQL Server 6.5 days, it seems I knew almost everything about SQL Server with decent depth. But in SQL Server 2005, I feel there are so many things I do not know or know very little, such as analysis service, integration service, reporting service and notification service. To learn all these together with the new features in SQL server engine domain (such as new T-SQL, service broker, mirroring, event notification, SMO etc) is almost impossible for my schedule, and I believe my issue is common to all other DBAs / developers and so what can be the guideline for us to choose which knowledge / skill we want to invest our time and efforts in?
Although I know the "famous" answer is "It depends", I still want to come up with a list that I believe is realistic and useful
1. Invest in an area which can enhance your professional credibility most
An example is if you do a lot of T-SQL coding, then invest in areas that can improve your skills / knowledge to write code of the same quality level like that of T-SQL guru Itzik Ben-Gan. This definitely makes you outstanding in your workt. Honestly, I am always amazed when I see a SQL statement like this (borrowed and modified from book Inside SQL Server 2005: T-SQL Querying):
declare @i as int
update dbo.MyTable set @i = MyColumn = @i + 1
2. Invest in an area which can improve your work visibility most
One Chinese proverb says "The baby who cries loudest will get fed most by the mom". I guess this is because "the loudest" baby definitely is most visibile to the mom.
I once joked with my fellow DBA that a DBA's work is a lot like that of a janitor, most of the time, we will be invisible to upper management just as we seldom notice that our office is clean and tidy because we take that for granted. However, let's say if the janitor leaves you a note on your desk every day and say " Good morning, here is the weather forcast for today and tomorrow, blah, blah... please keep yourself prepared, wish you have a nice day", or something else interesting, you will no doubt knows that there is someone doing something everyday.
From career perspective, I think sufficient visibility is a proof of one's value to the organization. I think the following items can serve as the DBA visibility carrier:
- Database system health status report (how much disk space consumed, average CPU usage, how many time-outs etc, etc)
- Database system capacity forcast (with the avg consumption rate of disk, how long our current disks will be used up, the # of one-hour window in which CPU has exceeded 75% in the last 7 days, and as such, we need to do one, two, three things etc)
- Business Activity Report (since 12:00am, how many transactions have occurred, how many new rows are inserted, how many distinct connections have existed etc)
3. Invest in an area which can minimize your work time (so you have more leisure time)
This is very straight, if you can do the quality work with more efficient way, why not? However to find an efficient way to do work usually needs extra knowledge (maybe from other related field). One example is that I have to script out the replication in our production once there is a change to the replication (e.g. a new article is added), in SQL 2K5, I have to manually script the replication out in SSMS, but this is a hassle when you have to script out multiple replications in different environemnts. It would be very easy to do this via RMO, when you use a script language like PowerShell, or C# etc.
I believe a right approach to our workskill investment is as important as our investment in real financial world, because both provide us the security of a fulfilled life.