What is most valuable?
They've done so many things that have made that product just so great. The most valuable features, what I tend to now use the most, outside of the change they've made in the IDE itself, are how it's become more flexible and the maturity in the IDE itself. It has the ability to manipulate code right there on the screen. The formatting and the UI's getting a whole lot better. That's part of it.
As far as a specific valuable feature, outside of just mentioning how it seemed the tool itself matured overall, is its modularity. I'm now able to split out windows that I couldn't do before. Basically, exploiting Windows features that are now available, it lets me kind of take advantage of having a really huge 30” screen. Now I can pull up and have multiple views of code running, and I'm able to lock that code, lock the results of queries in, so that I can see the differences between the things that I'm doing and if I wanted to change something, what the outputs will be. That's been a really good feature that I've appreciated in SQL Developer.
How has it helped my organization?
When I was reviewing some things in SQL Developer, one of the things that jumped out at me, especially in a former job a couple years ago, was the Cart feature. It allowed you to really streamline processes. Our process before was my developers would create some type of PL/SQL script, it could include DDL, a creating table, grants/permissions, obviously the scripting behind that, and we would take those series of files, we would put them on a shared drive on our network where our DBAs could then go get those files, and then promote them into our production environment.
The Cart feature, which came out I think around version 4 or so of SQL Developer, allowed you in the tool itself to select all of those components that developers had been working on, patch them up into a file that included everything our DBAs would need in order to roll that onto production. We can then just send them basically this shopping cart. They could take SQL Developer on the back end, open that cart up and basically deploy that through whatever environment.
That really allowed us to make sure that all the files and all of the components of any particular project we were working on were together, because we're not trying to copy this SQL file and put it over here, and this database definition, this table definition file in SQL over here, and grab a bunch of different things and stick them in a shared drive. We were able to use the tool itself, SQL Developer, to do that packaging for us and then with all the surrounding code needed to actually deploy that, and just pass that off to our DBAs who can then just execute that series of commands. They didn't have to come back and ask us anything. We eliminated kind of the question-answer piece between what the developer wanted and what the DBA was trying to do, because we were able now to encapsulate all of that into this Cart file. The Cart file included all of the coding that we needed our DBAs to execute on, to deploy into our development production environment space, to put our changes in. It really streamlined a process that we had integrated.
What needs improvement?
There are always areas of improvement as it relates to the tool's ability, the process that you need to go through in order to connect to some of the non-Oracle databases. You've got to go find the drivers for connecting to a DB2 database or connecting to even a MySQL database, which is now all by Oracle. Some of those components are just not included. Some of the tasks that the DBAs have to do could be worked out a little bit more.
They've done a great job with providing or producing a dashboard screen; very interesting metrics that you want to see as it relates to what's going on with the database. That's great, but - and this is just feedback that I get from DBAs - some of the features that it deals with, with their role in exploring what's happening in the database, are not there. That dashboard screen that you can now pull up has definitely moved in the direction that allows DBAs to go through there.
Growth in a monitoring perspective is something that I would like to see as it relates to the tool. It gives the developers the ability to say, "Oh, I ran the SQL and here it is outside of the normal suite of tools that Oracle has"; just something very simple to look at and go, okay, I can see how this is impacting the system.
Growth in those areas is where I would see the biggest benefit, but also a very big benefit in how I can connect and say, "Let me see what's going on," and I actually can get a snapshot of what's happening at that moment in time, what opportunity in the future could we push that, as it automatically refreshes that information.
For how long have I used the solution?
I’ve probably been using SQL Developer as far back as 2008.
What do I think about the stability of the solution?
From a performance perspective, we tended to see Java version compatibility issues. If you had a 32-bit version of SQL Developer for whatever reason when we were running in a 32-bit environment, you had to go download the 32-bit version of Java. If Java at that point would release a new update and you didn't get it and you wouldn't download it, the new version of SQL might not work.
The 64-bit version comes prepackaged with the JDK, so if you download that, you get it all. There's no separate install; it's just included in the ZIP file. The ZIP file's a little bit larger, but you know that when you pull it down, you're going to have all the pieces that you need.
With some organizations, it might not be feasible to have a second JDK installed on the machine due to compatibility issues with other applications.
But I think this is kind of common on the Java platform across the board; maintaining those versions when you've got one application that needs version 1.6 and SQL Developer needs 1.8. You've got to juggle those two things around and do some internal system configurations to make sure it is looking at the right version.
What do I think about the scalability of the solution?
From a scalability point of view, because it's just an install on each machine individually, scalability is not really an issue. Because we're in a network environment, we're able to actually have SQL Developer share file system space. We can point SQL Developer to the shared space. Those types of things weren't really an issue. It's not like we add people to using the one instance.
SQL Developer is able to handle hundreds of thousands of rows and columns. I haven't seen any instance where SQL Developer itself is the issue. Most times, what we've seen is that, either I've got a memory constraint issue on the machines, so I can only load in so much stuff, and SQL Developer has a configuration point that limits the amount of rows you get back from this database to 500, or whatever that is.
You can address system limitations. We've run into experiences where people say, "Oh, this is running slow." It tends to be slow because a bad query that has been written, and SQL Developer has tools to go in and look at the SQL and start doing troubleshooting. Or, you're trying to run something big in the middle of a financial close, and actually the resources you're trying to reach are being consumed by other things.
As far as running SQL Developer itself - outside of the Java compatibility issues where you might see SQL Dev not find Java or hang because it doesn't have the right version - the actual ability for the tool itself to grab the data, I have not run into a scenario where it's SQL Developer, so much as I have run into it's actually the machine that I'm using that may be limited in resources.
How are customer service and technical support?
We use the community as opposed to opening a ticket with Oracle, for a couple of reasons. Part of it is there's a certain part of the community using SQL Developer that because it's free doesn't understand that you can go and submit an SR for a patch fix in SQL Developer. Some of that may be why you get certain comments like that.
However, and this is more of a Oracle user community plug, the people that are using these tools are very open with helping you solve problems. The solutions that you get back are typically a lot faster than going through the structured support process, where you submit a service request, somebody says, "Okay, send me this back," and then you send it back and a couple days later somebody... You've got people that are actively out on Twitter and in the communities on forums that are just doing this stuff because they love doing it, and responses you tend to get involve a variety of options, and you tend to get those options a lot faster than going through the SR process.
If there's a bug that you want to report on SQL Developer, the only way to go about doing it is to open an SR. But for, "Hey I tried to do this in SQL Dev, and I just can't get it to work," put that on Twitter, put that in the SQL Developer community, and you'll have a dozen answers almost instantaneously. This is not because I know Jeff Smith, but he's very active in those community spaces as well, and is very good at responding to issues that people have. It's actually really good to have the product managers and the product developers actively looking at the communities that people are using to get these questions answered.
Part of it is definitely driven by the folks behind the scenes that are pushing that particular department down.
Which solution did I use previously and why did I switch?
When I started in this particular organization's IT department, a number of people were running SQL Developer and a number of people were running Toad. Outside of the fact that Toad costs money and SQL Developer is free, the great thing about SQL Developer at the time and even now is there wasn't really a need to deploy it out. You just go to Oracle's website, download SQL Developer, and unzip it. There wasn't really a need to have a rollout process of a network of applications. Because of the simplicity of it, and how you delivered really made that a non-issue.
While it might seem that Toad has stronger DBA options, I think that the real issue is that the DBA options are buried in SQL Developer as opposed to kind of front and center. The DBAs were the ones who used Toad and the developers were the ones that used SQL Developer.
When I started work on the development side, I thought, "Oh, okay, this is what we're using." When they issued you your computer, they’d say, "Go download SQL Developer and start using it." That was really how my introduction to SQL Developer really started.
Which other solutions did I evaluate?
I wasn't involved in the evaluations. I had a larger team; there were two DBAs and six or seven total developers all using SQL Developer. At least from the perspective of what our DBAs were using Toad for, we were able to demonstrate that SQL Developer had the same capabilities. It came down to, for those capabilities, you've got to go up and hit view and find the DBA tab, and you have to select the DBA tab and then you add the database to the DBA tab and then you get these features.
For somebody that's probably used to using the competing product, Toad, those links are on the main page, per se. One of the challenges was with the push back - "Oh, SQL Developer doesn't do that," - and we had to say, "You have to go here, here, do this, do that, and look, here's that same stuff right here."
We were able to win the battle between it costing a license fee to do this, or you can go configure SQL Developer, which is easy, to fit your needs and use it instead. That was the thing that allowed us to start using the Cart process, and a number of other things to streamline that whole migration of application and tools through our development cycle.
What other advice do I have?
It has done everything that I needed it to do, and it doesn't cost you anything. That's the first pitch. Then, when you start saying, "Okay, well how do I get involved with SQL Developer, how do I take advantage of it?" One is, you can go to the OTN website or the downloads at the Oracle.com website, and you can download a copy. It's an install. Actually, it's not an install; it's an unzip. You don't have to worry about specific issues such as not being able to install software on your computer because of corporate policy; you just unzip the file you wanted.
Then I follow that with going back to this community perspective; there are tons of blog posts that I would say, “Do a search on Google for ‘How to do’ whatever it is you're doing in SQL Developer. You're going to get something back.”
The tool itself is very intuitive, and you can download documentation from Oracle's website. For, me the real documentation is what the people who are using it every day are pushing out; here's how I did or how you do these particular tasks. I've written several myself on how to connect to a database using SSH. There are a number of “How do I make this extension to run within SQL Developer”, which is a cool thing. I can write an extension and make it part of SQL Developer, if I wanted to use SQL Developer to monitor something. I have the ability to write code that I can then incorporate into SQL Developer, and have it do some additional task that it didn't come delivered with. Great tool, great feature. You might not see that in anything else.
Know what is unique to SQL, obviously, because it's a tool used to develop databases, develop applications within the database environment, and because you have to know how to configure SQL Developer to connect to databases, you might want to brush up on what that means as it relates to your database environment. A connection string in an Oracle database is going to be different than if you're trying to connect to a MySQL database, a TimesTen database, a DD2 database, or even MySQL Server. Being familiar with what you're going to connect SQL Developer to is very important, as it will save you a lot of the frustration of, “I don't see what's going on, I don't know how to do this.”
Get familiar with the PL/SQL debugging tool within SQL Developer. It allows you to skip through your code, so you can see what the output is going to be, or what these fine variables contain as you go through your codes. It obviously helps you with troubleshooting. It'll add optimization of your codes. Take advantage of the ability to, as I mentioned before, to separate out your codes so that you can see the before and what your changes are.
There are a lot of features. The editing, get familiar with editing within the IDE. It does block editing, all kinds of things that let you format your code for presentation purposes. Just kind of think about what your development environment would look like, and just download SQL Developer and just go through those things, and get familiar with them so when you're actually getting ready to say, "Hey, I'm trying to convince corporate that this is the route we need to take," you can then lay on top of what you're supposedly doing with how SQL Dev can actually help you achieve those goals.