ThatJeffSmith

I Only Use SQL*Plus, a Desperate Cry for Help?

Willy Wonka doesn't like SQL*Plus either

Disclaimer: I work for Oracle now. This post pretty much pertains to any and all database IDE and GUIs. –Thanks, Jeff 1/25/2012

Let’s get this out of the way, because anyone who knows me, knows that I have a HUGE bias in this argument: I work for Quest Software, and my primary job is to help sell Toad for Oracle. I also love SQL*Plus, and I use it almost everyday. So don’t bash me because I’m bashing SQL*Plus because I’m not! I’m bashing the people that refuse to consider using anything OTHER than SQL*Plus :)

Ok, with that out of the way, I want to explore a bit this notion that you are ‘smarter’ if you only use command-line tools. I get the feeling when people tell me that they ONLY use the command-line, it’s because they feel like I am insulting their intelligence, skill-level, productivity by talking about a GUI product.

This used to be me.

When I started out with Oracle, my only tools were TELNET, SQL*Plus, FTP, and TkProf. When I needed to work on a remote customer site, all I ever needed was a network connection. I didn’t have to worry about if they had my favorite GUI in place for me to do my job. At the time, I wasn’t even really aware of GUIs in the database world. This made me very adept at using these tools. The muscle-memory my fingers developed over those two years still helps me today. I was very productive in my job, and I regularly received high performance appraisals. So, I didn’t really have anything pushing me to go look for GUI tools.

That changed one day. My co-worker asked me over to her cube to help her with a problem she was having. She had this weird window up, and I asked here what it was. “Oh, that’s _____, it helps you save time in Oracle.” She could click into a table and just see the data. Of course, she could also still write all of her SQL by hand and still get the old-school command-line output back too. I have to admit, I was intrigued, but I didn’t go back running to my cube eager to go download this software.

Occasionally I would go to ask her for help with something I hadn’t done before, and she would click, click, click her way to the ‘answer’ using her tool. I would ask her how to do that in SQL*Plus. She would show me, and I would go back to my desk and do it. Eventually I went and got her tool and started using both the command-line and the GUI.

A year later, I ended up being on the R&D team that made the tool, and my life never been the same since!

This morning I came across an interesting article from the OakTable.net folks titled - I don’t use GUI. Manly Men use SQL. I left a small comment, but didn’t really want to get into a heated discussion, as this usually devolves into a religious war. And let’s be honest, I’d rather that happen here. I also quite liked the story, and agreed with the general premise –
“There is a time for text and a time for graphics. Graphics lead the way to the text that is worth spending time analyzing.”

No One is Asking You to Kill SQL*Plus

It's not just the Database Folks!


Just because you use a GUI doesn’t mean you suddenly stop using the command-line interface. A carpenter doesn’t put away their hammer once they get their nail gun. Oracle has not deprecated SQL*Plus even though they put out SQL Developer. And I don’t see most of these SQL*Plus fanatics give much pause before jumping into Enterprise Manager or GRID…but I digress.

If a tool helps you save time, why would you refuse to use it? Is it ego? “Oh, I don’t need a tool.” I don’t think you need a tool for every task. Some things were meant to be done ‘by hand.’ I’d rather use the SQL*Plus interface to TRUNCATE a table in production. This should be a very deliberate action. However, if you ask me to TRUNCATE 30 tables in development, I can do that in 2 or 3 clicks versus coding a dynamic SQL script.

Valid Reasons for Sticking with SQL*Plus

  • You can do everything you need to do in the same amount of time it would take in a GUI.
  • You like the way you work now, and so do your bosses. There’s also no push for efficiency improvements and you bill by the hour (can you smell the snark the Jeff is cooking here?)
  • You have no money and neither do your clients. No money for tools that is. I had a boss once that forced the accountants to use the Calculator in Windows to do their accounting beacuse it was free and ‘good enough.’ A few months later, they were all using their fancy, expensive accounting calculators. I wonder why that is?

Ok, so I was having a bit of fun there with those reasons, but the first one is really all you need. There are people out there that can legitimately claim this, and you know who you are.

Surprise! Travel Agents Are Having This Same Discussion

While looking for green-screen images I could use in this blog post, I found a similar discussion in the travel agency universe. It’s a SIMILAR discussion, but I think it highlights one of the reasons there is reluctance to leave the warm confines of SQL*Plus.

In A Eulogy for the Green Screen, Gord notes that

“In a day or two, anyone can become reasonably proficient.”

I think this scares the older agents. They are worried those years of experience learning the ‘old ways’ have been wasted and that any bozo can come in and replace them in a few days. I know for a FACT that the user-friendliness of the GUI in the Oracle world scares a lot of DBAs because it seemingly makes Oracle look ‘easy.’ Every click has a cost associated to it. When someone asks to do something on a million-row table without thinking about the impact on the system, that is a big problem.

Also, you take pride in the years you have invested in the scripts you have built and collected. As well you should. Using a GUI doesn’t dishonor that experience. It just saves you time. Often a GUI will drive me to a problem that I can only fix with one of those scripts.

The Tool Cannot Replace Experience

The reason I am good at my job is not because I know everything there is to know about Toad. For starters, I don’t know everything! The primary reason I’ve been succesful in my career at Quest is because I lived on the front lines, fighting the same battles as other developers and DBAs. I learned Oracle from the ground up using command-line interfaces like SQL*Plus, SVRMGRL, and RMAN. Quest could hire someone to replace me who had no database experience, and force them to memorize the GUI stuff. But hiring someone new to Oracle and giving them a GUI cannot replace years of experience. It’s just cheaper. At least, it’s cheaper up-front.

I have a Twitter-buddy who has told me countless times how much he hates Toad. Not because he doesn’t’ like the tool. But because he hates the people who use it who have no idea what they are doing when it comes to SQL or Oracle. This same person has recently become quite the fan of SQL Developer, so I have hope that he is coming around to the Dark Side of the Force.

SQL Server Dismissed Because of their Tools?

I sometimes wonder if one of the reasons Oracle folks are so quick to dismiss SQL Server people is because it runs on Windows and comes with very nice GUI tools. The fact that they didn’t struggle with with shell scripting and green-screens doesn’t mean the underlying RDBMS is faulty. Some people have told me that SQL Server runs itself via the ‘Start > Run’ technology it’s based on. The bias here is very deep and hard to dispel. The only solution is to put an Oracle person in charge of a production SQL Server environment. Hmmm, this is probably deserving of it’s own blog post!

Funny Story

After presenting to a group of developers at a university in Virginia, one of the ladies walked up to me and invited me to lunch with her husband who happened to be a DBA. She loved her GUI, but he refused to budge from SQL*Plus. Apparently she thought I could pry him out of his cave. I told her that wasn’t likely, but I’d be happy to tell him what other DBAs told me what they liked about our GUI technology.

It didn’t go well. He got burned once by a person using a GUI 10 years ago. Page in the middle of the night, tablespace full, they didn’t know how to add space without using the GUI. “That’s the last time we let DBAs rely on GUIs here!” he exclaimed. I nodded my head and sympathized with the situation. He asked me what I would have done in his place. I told him I’d re-evaluate our interview process. Having a DBA on the production staff that couldn’t figure out how to use Google or read a MAN page isn’t who you want running your database is it?

I hope the GUI fans out there aren’t sacrificing knowledge for productivity.

I told the wife-developer that I’d have an easier time converting a Southern Baptist into an Episcopalian. And we’ve come full-circle to the religious argument. It’s not worth the time or energy trying to convince someone they are ‘wrong.’ I prefer to share why others are happy and productive with our tools. If it speaks to you, then great!

Our tools aren’t for everyone. There are several hundred GUIs out there available for database professionals. Use the one that works for you. I have to run now and work on my SQL*Plus script I use for creating BLOCKING LOCKS for my Toad demo.