I hope I don't get shot down and flamed for this but I am getting to the stage where I have to think about where I am going in my career.
I would say that I am a solid 6/10 in terms of my SQL Server knowledge. I understand all the basics, I'm learning about advanced stuff such as CLR and "quirky updates" (See my recent post 'Please can somebody explain how quirky updates work?') but I don't feel I am anywhere near 'ninja' status yet like some of the guys on here.
The Oracle website states that they have the largest market share of any relational database product on the market so would it make sense to focus my personal development on learning the 'ninja' stuff in SQL Server or learn how to implement Oracle database solutions and maintain servers?
Also as a side would it be a good idea to also touch up on my knowledge of MySQL and also learn other products such as DB2 and so on. Is too much knowledge a bad thing?
Maybe I should put a bounty on this question but I don't think I have enough at the moment to do that.
There are several good answers here, but here are my thoughts.
It pays to specialize, but not too much. Unless you are looking at a job that actually requires both, you are probably better off investing your time in just one or the other than dividing it between the two. By dividing it, it will be harder to truly master one, and unless you are in a position that really uses both in some way than mastery over one is likely to be much more valuable than a base level of knowledge in both. Yes, that closes some doors, but it would open others because of your greater profficiency. And the new doors that it opens are likely to be higher paying, more prestigious, and more interesting than the ones it closes.
This is just my personal opinion, but I find working with Oracle to be less pleasant than working with SQL Server's, so I am also happy to avoid it unless there is a good reason to use it.
Some might argue that learning Oracle will give you a new perspective on SQL Server that will help you. This is true, but spending your limited time to learn more about SQL Server will almost certainly help more.
Also, if you want a different experience to broaden your knowledge besides SQL Server, you may want to look at learning a new programming language. I personally am a fan of Python and IronPython. Learning to program in Python and IronPython has helped improve my T-SQL skills and given me tools for when T-SQL is not well suited for the task. I frequently use Python scripts for sophisticated data munging and extraction as well as for some system level scripting, so it is also directly applicable in my role as DBA (at least as my company defines that role.) You mentioned you already know and use CLR so you may want to dive deeper into C#. Also, I am a big advocate of DBA's studying relational theory and set theory, as it forms the mathematical foundation for what we do. These things can provide you the broadened resume set you mentioned so you are not purely dependent on SQL Server, but they will also be directly applicable to your role as a SQL Server DBA (depending slightly on how your organization defines that).
answered Feb 17, 2010 at 05:47 PM
This is largely opinion, so I doubt there's a "right" answer, but my take is, it depends on your own interests. I know lots of people that have hard core and complete careers without ever even learning how to properly spell Oracle, let alone design & program in it (I'm one). I also know people that build their careers off being platform agnostic and having a good understanding of as many different RDBMS's as they can.
I think if you know both, you're probably more employable overall, but you might not be as well suited to some of the really high-end positions that expect you to know either system down to the core.
That's my 1.5 cents.
answered Feb 17, 2010 at 02:27 PM
Grant Fritchey ♦♦
I agree with Grant (+1). I don't think it's realistic to try to be an expert at both SQL Server and Oracle, let alone also My SQL, Sybase, etc. For myself, I have a little over a year of experience with Oracle 8i (several years ago) but over 10 years of progressively more in-depth experience with every version of SQL Server since 6.5.
Personally, I prefer to learn one product (or a small set of products) in-depth as opposed to learning "enough" about a larger set because I enjoy being more knowledgeable in my chosen area. Although that decision has essentially excluded me from certain otherwise potential employers, I believe it has also enabled me to get to where I am as a senior developer/DBA with employers who do use SQL Server.
Out of respect for Grant, I'll consider my answer worth just 1 cent. :)
answered Feb 17, 2010 at 02:39 PM
Be careful of marketing spin. You can probably find similar 'facts' on MS website too - it's all in the definitions of 'market' and 'share'.
Neither is likely to 'defeat' the other in the near future, so it's definitely a question of personal preference, and probably opportunity too. I've worked in both, but recently (the past 9 years) I haven't had the chance to work on any Oracle environments, however when I see positions advertising for both SQL and Oracle skills, it doesn't put me off, as I know I can apply many of the generic SQL and database and data modelling skills to whatever implementation is needed. I agree that it could actually be career-limiting to dilute your skill set to a point where you know something about all database technologies, but have very little in-depth knowledge about a particular one.
It's important to know about other products and what they can do, as how else can you answer the questions that tech-fearing executives love to ask, like 'Why aren't we using Oracle? XYZ Corporation use it and they are huge!' or 'Lets use MySQL - it's free isn't it?'
I have no Oracle experience and I dont really expect to get any unless something huge changes in my life. I live in a remote part of the UK and there are no big companies around that use Oracle so there is no job market for me to try to get in to and I dont want to move around to find them. I have grown up with SQL server - starting in a developer role with 6.5 and moving to DBA from 7 thru 2008.
I keep a weather eye on mySQL for exactly the point Kev raises - how to tell managers why we dont use it "because its free" etc. A lot of techniques are similar and theories & practices, in the main, pass across technologies.
Given that you get to learn Oracle AND SQL Server to 'Ninja' level, what do you want to do with those skills? Are you going consulting and the big $$$ that slop around in big corporations or looking for 'Rock Star' status like Brent Ozar, Adam Machanic, Grant Fritchey, Brad McGehee, Thomas Larock and all the others on this list http://thomaslarock.com/rankings/ (and their equivalents from the dark side, uh I mean Oracle world ;) ) ? I think you might help yourself make the decision as to the tech knowledge if you know what you would do with it if you already had it ...
Whichever way you choose, good luck and keep doing it as long as you enjoy it.
answered Feb 17, 2010 at 05:24 PM