State of database management tools
Database managers seem to be more or less the same for the past 20 years. They differ in functionality and features, but see one and you've seen them all.
Database managers seem to be more or less the same for the past 20 years. They differ in functionality and features, but see one and you've seen them all.
As we support over 35 databases in our desktop applications and most of them are relational, we needed a tool to test our connectivity and run direct queries. Also, we prefer to use a single familiar tool instead of relying on a different tool for each database - so we made one. It helps us a lot, but our customers don't use it much. To succeed in a very crowded market littered with free tools (of questionable quality) and where each database vendor pushes own solution - a product must be so much better than the alternatives that it can't be ignored. So what is the ideal tool in today's time? Approach envisioned 20+ years ago is sub-optimal now.
Let's list some pain points:
- SQL tools are generally slow and clunky
- They often can't handle a lot of data
- IDE features we learned to love in programming (autocomplete, code analysis, proper workspaces) are usually completely non-existent
- Generally, workflow is designed for ad-hoc queries and state is lost once we close the application
- Every time we open the tool, we must find our connection and open it - that takes time
- With large databases, time required to read metadata can be prohibitive, so developer will wait for a while on each app startup. This usually comes with complete lack of any autocomplete and tool help.
- Importing data from other databases or standard file formats is painful or impossible. We solve this with our database converter, but it's a separate and Windows-only tool.
- Data export is usually very limited
- Dozens of icons and hundreds of menu items
- Feature. Creep. Everything anyone could possibly need is crammed in the same tool. Most of those features are clumsy.
- If you work with several connections at the same time, it's hard (or impossible) to manage many tabs effectively
- So much data is being moved to cloud, but the tools didn't appropriately change to help here
There has to be a better way, right?
Our answer is SQL Studio. Let's see what we're bringing to table.
Instant persistent workspace
First time I used Sublime Text, it felt like magic. It instantly opens and closes. Absolutely no questions asked and instead does the best for the user - it remembers its state. Close it. Open it again, continue to work exactly where you left. If you didn't save your files, no problem - you simply continue working on unsaved files when you reopen the application. We are replicating this experience.
In-browser, no compromises
Web applications are getting more powerful every day. Javascript is getting faster as well - and we are looking forward to WebAssembly - which should enable the holy grail of equating the web app performance with desktop applications.
Also, web applications work on all operating systems and even the weakest machines. As our databases are increasingly being placed on the cloud, it's actually better to move as much processing to the cloud (provided it's the same cloud your database resides in and preferably same region).
So, we are building SQL Studio as the web application and working hard to provide the same experience desktop apps spoiled us with. SQL Studio will be faster and more powerful compared to typical desktop database manager, but it won't be polluted with a ton of rarely needed features in a futile hunt for feature parity.
Taking advantage of context
The philosophy in SQL Studio is less, never more. Only absolute minimum of information is shown on any give screen. This makes for easier working and less fatigue. Also, software is just better, because it's obvious what everything means.
Multiple connections w/ super easy switching
We work with a small set or even single database most of the time - but we have tons of databases everywhere - often of different type. So, SQL Studio allows you to easily connect to your existing database and to create your new database on the cloud. And when you select one connection, only documents (tabs) for that connection are shown. Select another connection, your workspace transforms. Go back, instantly everything is restored - documents, schema tree. We even keep your editor selection and open nodes state in a tree.
Importing data
Importing data is a pain. Yes, we made software to make it easy on desktop (Full Convert Enterprise), but now the cloud gets an even easier workflow - drag & drop. Just drag your database files into the browser. We'll write more about this later.
Database-wide analysis
If you ever used Resharper or a similar IDE booster, you know how useful static code analysis is. We have built our own parsing and static analysis engine for relational databases that shows you syntax errors, missing references, unused variables - and much more. In realtime, of course. This is one of my favorites! (If nothing else, because it was so hard to make. One shouldn't get attached to software, but...)
Hope this sparks your interest!