Skip to main content


Showing posts from July, 2014

Hiring for a New Team: Oracle Database Evangelists

I have been given the honor of building a new team at Oracle: Oracle Database Evangelists . The Oracle Database Evangelists team is responsible for helping users fully leverage their investment in Oracle Database and to promote the use of Oracle Database technologies, including SQL, PL/SQL, Application Express, Oracle REST Data Services, and more. So what does it mean to be an evangelist? I very much like the following quote: A developer evangelist is first and foremost a translator. Someone who can explain technology to different audiences to get their support for a certain product or technology. It needs to be someone who is technical but also capable to find the story in a technical message… A good developer evangelist can get techies excited about a product by pointing out the benefits for developers who use the product on an eye-to-eye level."  Christian Heilmann, Principal Technical Evangelist at Mozilla I like the focus on "translation"

Using LOG ERRORS as a testing mechanism

I recently heard a very interesting story about a use for LOG ERRORS : namely, to verify the correctness (and improve the performance) of a problematic SQL statement. I thought you might enjoy hearing about it. Greg Belliveau of Digital Motorworks buttonholed me at ODTUG's Kscope14 conference with this report: As part of a data mart refresh, we had an insert statement that refreshed a FACT table, and over the years had gotten to the point where it took well over 3 hours to complete.  There was a NOT IN clause in the statement, and we were pretty sure that was the cause of the degenerating performance. Why was it there? Our best guess was so that the statement would not fail in case someone ran the refresh for a date range that had already ran...even though there was code that checked and prevented that from happening.  [Steven: In other words, programmer's insurance. "Just in case, let's do this." That's always problematic in software. Is that a rea

How Has SQL or PL/SQL Changed Your Life?

It's not hard to identify some of the key enabling technologies of the Information and Internet Eras: Windows, Linux, HTTP, HTML and Java all come to mind. But likely what doesn't come to mind immediately, these days, is: SQL and PL/SQL Seriously, how important can these be or have been when there's an entire software movement that puts the word "No" in front of SQL? Extremely important, it turns out. The SQL language, with its set-oriented and declarative power, revolutionized the way programmers, DB administrators and at least some end users worked with, and work with, data. PL/SQL enabled the creation of powerful, effective mission-critical applications that run pretty much everything that modern human society relies on, day to day. Sadly, we work in an industry that is perhaps more fashion conscious than the fashion industry. itself. We are always driven to get excited about the latest, greatest (or at least newest) thing. And when

The Joy of Low Hanging Fruit, Part 3: Deferred satisfaction key to great code

In the second post of this "Joy" series, I introduced the primary technique we would use to improve the performance of's daily job: bulk processing with FORALL and BULK COLLECT. I emphasized that whenever you see a loop that contains non-query DML, you should convert it to use these bulk features. So we've got some problematic code and we know what features of PL/SQL to use. So now it's time to check the documentation, make sure we've the syntax down, and apply the feature, right? Change the code around and watch the bits and bytes flow like greased lightning! Not quite. Sure, we could have done that. But after some 30 years in software, I have grown leery and wary of excitement. When we get all excited about a new feature or a solution to a problem, we tend to then be in a hurry to apply it. When you hurry, you miss critical information. When you hurry, you don't question your assumptions. When you hurry, you are m

My Oracle Open World Sessions

I will be presenting three times at Oracle Open World: Session ID: CON7828 Session Title: The Whys and Wherefores of New Oracle Database 12c PL/SQL Features Session ID: CON8265 Session Title: PL/SQL: The Scripting Language Liberator Session ID: CON8450 Session Title: SQL (and PL/SQL) Tuning Experts Panel Now, sure, that's plenty exciting. But I have even more exciting news: we will be holding the first ever YesSQL! Celebration of SQL and PL/SQL event at OOW14 on Monday, September 29th, at 6:30 PM. Here's a description: Co-hosted by Tom Kyte and Steven Feuerstein, YesSQL! is an Oracle Open World event celebrating SQL, PL/SQL, and the people who both make the technology and use it. At YesSQL!, special guests Andy Mendelsohn, Maria Colgan, Andrew Holdsworth, Graham Wood and others share our stories with you, and invite you to share yours with us, because.... SQL Celebration is an open mic night. Tell us how SQL and PL/SQL - and the Oracle experts who ci

The 2014 PL/SQL by Feuerstein Webinar Series

Now that I am settling in very nicely at Oracle Corporation, after a 22 year absence, it's time to get back to celebrating all the wonderful things you can do with PL/SQL, along with advice about how to best  do those things. I am happy to announce that Oracle Corporation and ODTUG are teaming up to co-host a six-month webinar series on the Oracle PL/SQL language. The first three webinars, hosted by Oracle, will focus on PL/SQL best practices: How and When to Write SQL in PL/SQL Wednesday, July 9, 2014, 11:00 a.m. ET - recording available here . How to Write PL/SQL Code You Can Actually Read Wednesday, August 13, 2014, 11:00 a.m. ET - recording available here . Bullet-Proof Your PL/SQL Program Units Wednesday, September 17, 2014, 11:00 a.m. ET - recording available here . [My apologies about the late notice for the first webcast, scheduled for next week. Like I said: I just got settled in.] The second set of three webinars, hosted by ODTUG, take on the challenge of