Skip to main content

Reflections on Oracle Open World 2015

Oracle Corporation is a massive enterprise - over 130,000 employees, big shiny headquarters, hundreds of products (software and hardware), etc. - and Oracle Open World reflects that massiveness. I suppose there may be some people who can ingest all of that and make sense of it (besides our top executives, for whom that is in part their job), but I tend to focus lots more narrowly in the Oracle Database world and the developer community that thrives around that flagship product.

My Personal Highlight: Announcing Winners of the 2015 Devvys

So first and foremost the highlight of OOW15 was our YesSQL event, in which we announced the winners of the 2015 Devvys - the Oracle Database Developer Choice Awards. Andy Mendelsohn was kind enough to make room in his busy schedule to stop by, share some stories (this year, he focused on Big Data SQL, and how that evolved so smoothly out of existing technologies) and let everyone know how important application developers are to the continuing success of Oracle Database.

Here's Andy with the winners and finalists of the Devvys, who attended OOW15:


Yes, they are that excited and it was that much fun. Many of the winners and finalists could not attend OOW15, but all were saluted at the event:


Here's Michelle Kolbe (winner in the Database Design category) showing the beautifully engraved chunk of crystal all winners will be receiving in the next month:


We got approval for the Dev Choice Awards program in April 2015. We launched the program in June, at Kscope16, and gave out the first round of awards four months later. Whew. My head is still spinning. Many of you likely work at a large corporation, so you may have some idea of what it takes to move that quickly. I am very pleased with the outcome - and extremely grateful to Todd Trichler and Laura Ramsey for all their hard work. 

Now it's time to evaluate the program and figure out how to make it so much better in the future (for example, in case any of you were wondering: no down voting). Oh, yes, and publish a video of the program and event. We're working hard on that now.

But it's true - there was more to OOW15 than the Devvys. :-)

PL/SQL (and SQL) Going Strong

Even I, a human fully obsessed with the PL/SQL language, can accept that this technology plays a very small part in the overall "picture" of Oracle Open World. Still there were a number of excellent presentations, enthusiastically received.

Bryn Llewellyn, Distinguished Product Manager for PL/SQL and Edition-based Redefinition, rolled out a powerful, new talk: Why Use PL/SQL? in which he offered "unassailable arguments" for PL/SQL's place in the world of applications built on Oracle Database, summed up as the Thick Database Paradigm. I urge you to read the whitepaper that forms the foundation for his talk and put his arguments to use when discussing with management and UI developers the architecture for your next application. Bryn even offered up some graphics!

Bryn also gave a talk titled Transforming one table to another: SQL or PL/SQL?, in which he examines Tom Kyte's mantra, summarized as "If you can do it in SQL, do so; only if you can’t, do it in PL/SQL", and then concludes that at least for some scenarios, "It is better to implement the core logic of the algorithms in PL/SQL, even when a single insert... select approach is feasible. My preference is inevitably subjective – and reflects some rather subtle considerations. Your opinion might be different." As Bryn points it, his conclusion involves some subtlety. He is not suggesting you neglect your SQL skills (or the application of them) and write lots and lots of PL/SQL. He is advocating for a careful decision, at least when the SQL solution becomes extremely complicated, and by implication hard to maintain.

Besides YesSQL and the Devvys, my main involvement at OOW15 was to run a panel on PL/SQL Optimization for Performance and Maintainability. Bryn and I were joined by Martin Buechi, Kim Berg Hansen, and Marcelle Kratochvil. The room was full (I'd like to say "packed," but in all honesty there were a few unoccupied seats) and the questions engaging. And, of course, with the very last question, suddenly a half dozen people wanted to speak at once - and we were out of time. Sigh...

My impression is that attendees enjoy a break from 45 minutes of "download" (listening to an often sped-up delivery of a talk) to one in which they can ask questions and listen to some back-and-forth from the panelists.

This impression was reinforced by a similar panel on SQL optimization later the same day. Attendees and panel members all were busy asking, answering, discussing and - when all was said and done - all but fighting to get their hands on the remainder of the special K.I.S.S. (Keep It Simply SQL) t-shirts Connor brought with him from Perth:


I greatly enjoyed watching Connor (who filled the last opening on our Developer Advocates Team). I hadn't caught any of his presentations in the past, because they were more database administration, rather than development, focused. Here he is answering one a question (sorry about my shaky hand):



The Bigger Picture

Two kinds of bigger:

1. Community: stepping away from the technology, one of the things I enjoy most about OpenWorlds is the opportunity to chat with members of the developer community. This year, I worked especially hard at making time to meet with lots of ACEs and ACE Directors to get their feedback on our various community-oriented initiatives (I was also very pleased to finally meet Solomon Yakobson, a Grand Titan on the OTN SQL and PL/SQL Forum with 289,155 points, and someone who has helped me out a lot over the years). We still have lots to do, but it does seem like many of you "out there" are noticing a difference. I hope so, 'cause we sure are trying hard!

2. Oracle technology: obviously, while Oracle Database remains the flagship product of Oracle Corporation, it is also "just" one component in an ever-growing array of offerings. Just as obviously, Oracle is in the midst of a far-reaching "pivot" to the Cloud. This isn't the first time Oracle's undergone a big change and it likely is not going to be the last. Given the pace of change in the technology world, however, there is more pressure on Oracle than ever before to move fast and get it right. My impression overall, both as a person watching the OOW keynotes (view from the "outside") and as an insider with some albeit limited knowledge of all the various projects, is that we are very effectively leveraging our existing foundation, especially Oracle Database, while we build the necessary new layers simultaneously.

It is, of course, too soon to tell if we will one day be the Cloud Monster some in the company say we will be, but I feel quite confident that we will be able to provide a solid, competitive migration path for our enormous installed base, as well as create an inviting platform for developers on which to create new apps.

Comments

Popular posts from this blog

Running out of PGA memory with MULTISET ops? Watch out for DISTINCT!

A PL/SQL team inside Oracle made excellent use of nested tables and MULTISET operators in SQL, blending data in tables with procedurally-generated datasets (nested tables).  All was going well when they hit the dreaded: ORA-04030: out of process memory when trying to allocate 2032 bytes  They asked for my help.  The error occurred on this SELECT: SELECT  *    FROM header_tab trx    WHERE (generated_ntab1 SUBMULTISET OF trx.column_ntab)       AND ((trx.column_ntab MULTISET             EXCEPT DISTINCT generated_ntab2) IS EMPTY) The problem is clearly related to the use of those nested tables. Now, there was clearly sufficient PGA for the nested tables themselves. So the problem was in executing the MULTISET-related functionality. We talked for a bit about dropping the use of nested tables and instead doing everything in SQL, to avoid the PGA error. That would, however require lots of work, revamping algorithms, ensuring correctness, you know the score. Then my eyes snagge

How to Pick the Limit for BULK COLLECT

This question rolled into my In Box today: In the case of using the LIMIT clause of BULK COLLECT, how do we decide what value to use for the limit? First I give the quick answer, then I provide support for that answer Quick Answer Start with 100. That's the default (and only) setting for cursor FOR loop optimizations. It offers a sweet spot of improved performance over row-by-row and not-too-much PGA memory consumption. Test to see if that's fast enough (likely will be for many cases). If not, try higher values until you reach the performance level you need - and you are not consuming too much PGA memory.  Don't hard-code the limit value: make it a parameter to your subprogram or a constant in a package specification. Don't put anything in the collection you don't need. [from Giulio Dottorini] Remember: each session that runs this code will use that amount of memory. Background When you use BULK COLLECT, you retrieve more than row with each fetch,

Quick Guide to User-Defined Types in Oracle PL/SQL

A Twitter follower recently asked for more information on user-defined types in the PL/SQL language, and I figured the best way to answer is to offer up this blog post. PL/SQL is a strongly-typed language . Before you can work with a variable or constant, it must be declared with a type (yes, PL/SQL also supports lots of implicit conversions from one type to another, but still, everything must be declared with a type). PL/SQL offers a wide array of pre-defined data types , both in the language natively (such as VARCHAR2, PLS_INTEGER, BOOLEAN, etc.) and in a variety of supplied packages (e.g., the NUMBER_TABLE collection type in the DBMS_SQL package). Data types in PL/SQL can be scalars, such as strings and numbers, or composite (consisting of one or more scalars), such as record types, collection types and object types. You can't really declare your own "user-defined" scalars, though you can define subtypes  from those scalars, which can be very helpful from the p