Optimizer Histograms

At the recent OUG Ireland conference I had the privilege of participating in a panel discussion on the Oracle Database. During the course of the session the topic of Optimizer histograms came up. As always, a heated discussion ensued among the members of the panel, as we each had very different views on the subject.

Why so many different opinions when it comes to histograms?

The problem arises from the fact that some folks have been burnt by histograms in the past. In Oracle Database 9i and 10g, histograms in combination with bind-peeking lead to some unpredictable performance problems, which is explained in detail in this post on the  Optimizer blog.  This has resulted in a number of folks becoming histogram shy. In fact, I reckon if you were to put 3 Oracle experts on a panel, you would get at least 5 different opinions on when and how you should gather histograms!

So I thought it would be a good idea to explain some of the common misconceptions that surround histograms and the impact of adopting them.

This is a long post, so you might want to grab a coffee before you get into it!

Continue reading

Posted in Optimizer, Statistics, Syntax | Tagged , , | 11 Comments

Upcoming Event: Georgia Oracle Users Group Tech Days 2017

I’m delighted to have been given an opportunity to deliver the keynote session  at this year’s Georgia Oracle Users Group Tech Days 2017.

The conference takes place on  May 9-10, 2017, at the Loudermilk Conference Center in Atlanta, Georgia and is shaping up to be two great days of technical sessions delivered by some of  the best Oracle speakers I know.

Continue reading

Posted in Events, Oracle Database 12c New Features | Tagged , | Leave a comment

Oracle Database 12c now available on Docker

Last week at Dockercon, Oracle announced that the Oracle Database is now available alongside other Oracle products the on Docker Store.

Given how much folks here in Silicon Valley (including my better half) rave about how easy and great Docker is, I thought I would try it out and share with you exactly how I did.

Since I was a Docker virgin, the first thing I had to do was download and install Docker. A quick trip to the Docker Store followed by a double click and I was up and running!

Next I needed to get the new Oracle Database container. You have two options here:
Continue reading

Posted in Docker, Oracle Database 12c New Features | Tagged , | 20 Comments

Best Practices For Large Volume or IoT Workloads

Over the last few years there has been a rapid surge in the adoption of smart devices. Everything from phones and tablets, to smart meters and fitness devices, can connect to the Internet and share data. You only have to follow @MarkRittman and his experiences with getting his kettle to boil remotely to see just how many devices within your own home can connect to the internet.

With all of these smart devices, comes a huge increase in the frequency and volume of data being ingested into and processed by databases. This scenario is commonly referred to as the Internet of Things or IoT.

Some people assume that a NoSQL database is required for an IoT workload because the ingest rate required exceeds the capabilities of a traditional relational database. This is simply not true.

Continue reading

Posted in technical_papers | Tagged , , | 2 Comments

A Special Episode of Real Time BI

Yesterday I had the privilege to join Stewart Bryson, Danny Bryant and Bobby Curtis for a special episode of Real Time BI. During the show we had an opportunity to chat about some of our favorite new features in Oracle Database 12c, the transition to the cloud and what you can expect at the upcoming GAOUG Tech Days.

All four of us will be speaking at the Tech Days in May and from what I hear it’s going to be a great couple of days in Atlanta. So if you are in the area, it would be great to have you join us.

You can check out the full episode below!

Posted in Events | Tagged , | Leave a comment

Oracle OpenWorld 2017 call for papers has begun!

Believe it or not, it’s time to start thinking about Oracle OpenWorld 2017!

The Oracle OpenWorld 2017 call for papers is now opens! Oracle customers and partners are encouraged to submit proposals to present at this year’s Oracle OpenWorld conference, which will be held October 1-5, 2017 at the Moscone Center in San Francisco. Details and submission guidelines are available on the Oracle OpenWorld Call for Papers web site. The deadline for submissions is Monday, April 24, 11:59 p.m. PDT.

We look forward to checking out your sessions on the Oracle Database and how it has changed the way you do business!

Posted in OOW | Tagged , | Leave a comment

New Top-N Queries and Pagination Syntax

At the RMOUG Training Days, a couple of weeks, ago @GeraldVenzl and I delivered a session demonstrating what it would take to get a REST enabled, web-based application up and running with Oracle Database 12c. During the session Gerald asked me to write a query to calculate the top 10 customers we had in terms of their total spend. Below is the query I came up with.

SELECT c.c_name, 
       c.c_custid loyaltyCardNo, 
       t.city, 
       t.state,
       SUM(salesAmount) total
FROM   customers c,
       t
WHERE  c.c_custid = t.loyaltyCardNo
GROUP BY c.c_name,
         c.c_custid,
         t.city,
         t.state
ORDER BY total DESC
FETCH FIRST 10 ROWS ONLY;

After the session I got a number of questions regarding the “FETCH FIRST 10 ROWS ONLY” syntax that I used, so I thought it would be worth explaining what it is and what happens under the covers when you execute it.

What is FETCH FIRST X ROWS ONLY?

Continue reading

Posted in Oracle Database 12c New Features, Syntax | Tagged , | 1 Comment

What’s New With Database In-Memory in 12.2?

My favorite marquee feature in Oracle Database 12c is Database In-Memory. With the introduction of Database In-Memory in 12.1.0.2, data can now be populated into memory both in a row format (the buffer cache) and a new in-memory optimized column format, simultaneously.

The database maintains full transactional consistency between the row and columnar formats, just as it maintains consistency between tables and indexes. The Oracle Optimizer is fully aware of what data exists in the column format and automatically routes analytic queries to the column format and OLTP operations to the row format, ensuring both outstanding performance and complete data consistency for all workloads without any application changes.

So, what can you expect from Database In-Memory in 12.2?

Continue reading

Posted in Database In-Memory, Oracle Database 12c New Features | Tagged , | Leave a comment

What To Expect From Oracle Database 12c

I know I promised more blog posts on the new features in Oracle Database 12c but I thought I would cheat on today’s post and point you to an article I wrote in the current issue of UKOUG’s Scene Magazine.

There you will find a 3 page article that outline what you can expect from Oracle Database 12c both in terms of marquee features as well as small but useful enhancements.

I’ll have more technical posts on these and other new features in the coming weeks.

Click on the picture to read the article.

Three page overview of what to expect from Oracle Database 12c

Posted in Oracle Database 12c New Features | Tagged , | Leave a comment

Longer Identifiers in Oracle Database 12c Release 2

Now that Oracle Database 12c Release 2 is available on-prem, I thought it would be a good time to remind folks about what they can expect from the new release. I’m going to divide topics into two categories, Marquee Features and top-tips. Let’s start with a top-tip!

Prior to Oracle Database 12c Release 2, all object names had been limited to just 30 bytes. This limitation lead to some interesting problems, especially if you wanted to use descriptive names for the database objects you were creating.

Take for example the dictionary tables we wanted to create in 12.1 to help manage SQL Plan Directives. The first table was DBA_SQL_PLAN_DIRECTIVES, with 23 characters, which wasn’t problem. However, the second table we wanted was DBA_SQL_PLAN_DIRECTIVES_OBJECTS.

Continue reading

Posted in New Features, Oracle Database 12c New Features | Tagged , | 2 Comments