What would you add to Oracle?

What would you add to Oracle? The database I mean. Not the company or the stack in general. What feature would you add to the core database, its utilities and its interfaces?

I get asked that question in interviews. It's kind of tough for me. The database has enough instrumentation for me (a lot of it is beyond me). It's stable, robust, performant, etc. What the heck would I want?

My off the cuff answer is booleans as a data type. That's a missing feature that has annoyed me for quite some time. Still, if I could pick one thing, would that be it?

I think OEM/Database Control/Grid Control could use some work. It gets better with every release but I still find it lacking at times. I don't think there is a particular feature I would add. More like having the existing features be faster and/or go deeper into the functionality.

I would say the same about SQL Developer. Why does cut and paste freeze the UI if I have a query running? Why does the data dictionary load so slowly on a large database? I think code formatting could use some major overhauling. I'd rather do it by hand at this point.

PL/SQL is an awesome language. A few things I can think of there: I'd really like to have the compiler include SQL in the data stored for PL/Scope. Private attributes in objects. Better default handling for parameters and variables (a IS DEFAULT or something). Hmmm, I could kind of go on forever but those are really just adding enhancements rather than new features.

PostgreSQL is really cool in that so many languages are supported inside the database. Sometimes one language is better equipped to solve a particular problem than another language. The standard database comes with PL/pgSQL (sort of like PL/SQL), PL/TCL, PL/Python and PL/Perl. Being open source, you can install other languages like PHP, Ruby, R and even SHell.

What would you like to add to Oracle? Maybe you know of a feature in some other database that would be great in Oracle? What feature would make you life easier or make things faster?

My blog represents my thoughts and opinions and not my employers thoughts and opinions. If you want to know what my employers think, it is best to ask them directly. On the other hand, I pretty much say what I am thinking right here.

10 Comments

Re: SQL Developer
Why does cut and paste freeze the UI if I have a query running?

Good question. I'm not able to replicate this behavior. Are you trying to copy from a worksheet, a grid, somewhere else?

Why does the data dictionary load so slowly on a large database?

We use an APPS instance for our internal testing to simulate large production environments. Where exactly are you seeing the slow load times? Is it on connect, when you open a node on the connection tree, etc?

I think code formatting could use some major overhauling. I'd rather do it by hand at this point.

We're continuously making improvements to the formatting. As you can imagine this can be a pretty subjective area. Can you provide some formatting examples? I'll do my best to make sure it's not already achievable or add it to our todo list.

One last thing, what version of SQL Developer are you using today Lewis?

You can send me your feedback offline if you'd like - jeff.d.smith@oracle.com

Support for the SQL-92 standard, CREATE ASSERTION would be my vote. Most of the worst trigger code that I see are really incorrect attempts to enforce the sort of business rule that CREATE ASSERTION was designed to enforce. Rules like - "All departments must have a manager." Yes, I know why most RDBMSs don't have ASSERTIONS - they are a devilishly difficult feature to implement. Nonetheless, I want it, even if the initial version is limited to particular syntaxes and use cases.

“Who is the user?” is the question I puzzle over most often. System-level errors in the Alert Log don’t identify the user or session involved. So, I may see that a sort failed to allocate sufficient space, but I can’t use that information to contact the user and tell them that they need to tune their SQL to sort less data, or assign them an alternate temporary tablespace that’s sized to their needs.

When there’s a deadlock, I need to know which session was rolled back, so I can alert operations to rerun a job; but this is difficult to discern in the trace file.

Applications that are accessed from application servers via a shared database user (like SYSADM in PeopleSoft) are hard to support, because I have no way to tell which online user corresponds to a given database session. It would be great if a web user identifier were included in V$SESSION.

Roger -
Your wish is Oracle's command. One of the features (subject to the usual caveats - they always warn us not to base purchasing decisions on what they say in conference sessions) for Oracle 12c that were announced at OpenWorld is the automatic surrogate key generation you desire. No trigger and no sequence needed.

Disclaimer: Blog contents express the viewpoints of their independent authors and
are not reviewed for correctness or accuracy by
Toolbox for IT. Any opinions, comments, solutions or other commentary
expressed by blog authors are not endorsed or recommended by
Toolbox for IT
or any vendor. If you feel a blog entry is inappropriate,
click here to notify
Toolbox for IT.

Lewis Cunningham is an Oracle ACE Director, Oracle 11g Certified Professional (OCP), Oracle 11g Certified Data Warehouse Implementation Specialist, Database Architect and self-professed database geek. Lewis has almost 20 years of database experience. Follow along as he builds a working Oracle encyclopedia, sharing his knowledge and experiences, and describing ways to integrate that technology in various projects and business areas.
less

Receive the latest blog posts:

Share Your Perspective

Share your professional knowledge and experience with peers. Start a blog on Toolbox for IT today!