It's mostly the T-SQL skills I'm talking about but there are other things, as well.
For some examples on the T-SQL side... and, no, I couldn't make this stuff up because it's just too fantastic... I had a "developer" bring me some code to review that would create a CLR. I told him that I wouldn't allow that particular CLR to go in and before I could explain why and how easy it was to do in T-SQL, he said something to the effect of "We'll just see about that" and stormed out of the room. To make a much longer story shorter, he convinced the managers to call me out on the carpet in a grand meeting designed to disgrace me and compel me to allow the code. I explained how simple and, basically, how stupid the code was and now the "developer" was on the spot. What was the CLR for? It was an SQLCLR function to calculate modulus. You know, the thing that the "%" operator is for.
Anther wrote an SQLCLR to do an "UPSERT" in SQL Server 2000 (most use Merge nowadays) because he couldn't figure out how to do it in T-SQL. Very nearly the same result there.
Then there are things like code just flat out taking too long to run. One company asked me to stand up an entire server just so they could do this one year end report because "we've always had to do this because the code cripples the production server". They were right... in testing, it would run TempDB out of space every time. I made one Temp Table to hold a small amount of interim data and their more than 30 table join single query suddenly went from taking more than 30 minutes and crushing the server down to 3 seconds and didn't even show up on PerfMon for CPU usage.
Then there are really old things like using very high performance CROSS TABs instead of using PIVOTs. CROSS TABS used to be covered in Books Online but no more. Now they tell you how to use PIVOT.
Then there's all those DBAs that I've interviewed that don't know how to do a native backup and restore because they bought tools to do that and are dead meat when a company tells them they're not buying those tools.
Heh... then, there was the initial PowerShell craze. If you hadn't converted your enterprise-wide backups to being centrally controlled from a PowerShell script, well you just weren't a cool kid. But no one considered what happens to all the log files and related drive space on all your servers if that one central controlling system went south for the winter. Since I did it the old way where each server is autonomous in the area of backups, I never had to worry about that.
There's also the proverbial "Tower of Babel" in ETL systems. SSIS. Web Methods. Business Objects. Whatever. How many times have we heard "and then you write a script task" in conjunction with all those things? For everything that I've had to do for the last 20 years, the old stuff such as BCP, BULK INSERT, and a smattering of DOS along with a bit of T-SQL has worked just fine and continues to do so with great performance on some rather large files sourced from the 4 corners of the U.S.A. from multiple source types for anything from (ugh!) reel-to-real tapes and modems to SFTP sites.and even some good ol' fashioned web site screen scrapping.
And then there's system monitoring. The company I currently work for spent a small fortune on software that monitors systems and hard disks and performance and ... and... and. To date, none of that software has actually been able to identify performance problems. None of it has actually given enough warning about hard disks that have crossed the 10% free space line nor been able to predict when the hard disk will run out of space based on the bazillion bytes of history that's been stored over the years. But, my old stuff does. For example, I wrote a system using T-SQL and makes some calls to old WMI using old xp_CmdShell. Every morning, I get a single email that says out of the 285 systems that the code monitors, here's the small handful of disks that we need to watch or expand including disks that have an "IsDirty" bit set that will need a DiskScan on the next reboot. It even checks all the servers for portable storage devices like CDs, memory sticks, and other USB devices to help the Network Operations folks find such devices they may have misplaced and can't find. It's all old stuff and it all still works.
Those are just some of the examples of the old stuff or old ways of doing things and the reason why it still works for me is that I took the time to learn the tools that are available on every SQL Server including T-SQL, DOS, and WMI instead of being distracted by purple squirrels and the latest cool-kid stuff that sometimes goes away in just a month or two.
is pronounced "ree-bar
" and is a "Modenism
" for R
First step towards the paradigm shift of writing Set Based code:
________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.
"Change is inevitable... change for the better is not".
"Dear Lord... I'm a DBA so please give me patience because, if you give me strength, I'm going to need bail money too!"
How to post code problems
How to Post Performance Problems
Create a Tally Function (fnTally)