As someone who hires a lot of SQL Server DBAs and Developers I see an incredibly large number of SQL Server candidates and even more CVs and the one takeaway I’ve always had is that everyone, no matter who they are, is a SQL Server Expert.
Is that really the case? Of course not. But nearly every CV passing over my desk states proudly that the candidate has 5-10 years’ experience and has used everything from SQL Server 2005 through to SQL Server 2017, and that their ability is in the software is at “expert level”.
Sadly, SQL Server is its own worst enemy. It tries to do everything for you, making it far too easy to believe that you know what you’re doing when, in fact, you’ve barely scratched the surface of the product and, let loose on any system other than your own, would likely damage it beyond repair and be swiftly fired.
The issue is that no-one has been trained. There are numerous SQL Training Courses out there but no-one ever takes them. Why? Because people honestly believe they know what they’re doing. They’re self-taught, SQL Server runs, and DBAs and SQL Developers are rarely part of a large team and so no-one has ever questioned their knowledge or pushed them beyond their boundaries.
It makes sense though when you consider that SQL is such a simple language and therefore if I can write code, said code gets me the required results and, if needs be, I can factorise my code into procedures and functions, then I clearly know what I’m doing.
But in the real world this simply won’t suffice. In most roles the requirement isn’t simply that something works, it’s that it works well. Very well. Code needs to be supported by statistics and indexes to aid the optimizer in producing a good execution plan. There may be memory leaks, spills to disk, and concurrency issues to consider. It is resource heavy? Should parallelism be a factor? What joins are being internally used?
Unless you can breeze through the paragraph above and be confident in any deeper questions presented in interview then, trust me, you are NOT a SQL Server Expert and should maybe consider doing a course.