Who's online

There are currently 0 users and 41 guests online.

Recent comments


Oakies Blog Aggregator

Oaktable world 2014 is on!

Many Oaktable members are planning to talk about deep technical topics in Oaktable world 2014. Looking at the agenda, I am excited, so many deep topics are planned. I will be talking about in-memory internals on Monday morning at 9AM, 9/29/2014, right after Mogens’ Keynote speech. You can find all details here: Oaktable world 2014. I will post my presentation slides after the presentation.

Start your open world week presentation with mine :). Sorry, no beers planned at that time, it is 9AM, after all!

Thanks for attending my presentation at Oaktable World 2014. You can download the slides : In-memory_internals.pdf.

Also, our book Expert Oracle RAC 12c has been translated to Chinese language. You can find details about that book in one of the translator’s blog: Alex lizx.

Where the real technical talks are at OOW

What are the real technical talks at OOW amid all the marketing fluff? I don’t know all of them but I can vouch for the following


time id speaker room title
Sunday 9:00 UGF2563 Jeremiah Wilton, Marc Fielding M South 309 24/7 Availability with Oracle Database Application Continuity
9:00 #222222;" data-sheets-value="[null,2,"UGF4378"]">UGF4378 Gwen Shapira M South 308 Analyzing Twitter Data with Hadoop – Live Demo
10:00 UGF3587 Tim Gorman M South 301 Scaling To Infinity: Partitioning DW on Oracle Database
11:00 UGF3147 Chris Antognini M South 304 Adaptive Query Optimization
2:30 UGF8949 12 speakers… M South 304 12 Looks at Oracle Database 12c: EOUC Short Talks
UGF8949 pt. 1 Jonathan Lewis M South 304 Ugrading to 12c – What will go wrong?
2:30 UGF2244 Connor McDonald M South 303 12c features for Developers
2:30 UGF3475 Martin Bach, Frits Hoogland M South 310 Think Exa!
3:30 UGF4042 Kyle Hailey M south 301 DevOps, Databases, and the Phoenix Project
3:30 UGF6626 Kerry,Tanel,etc M South 310 Expert Oracle Exadata: Then and Now – Panel
Monday 8 Mogens Noergaard Oaktable World Welcome
9 Riyaj Shamsudeen: in-memory internals Oaktable World in-memory internals
1 #222222;" data-sheets-value="[null,2,"Chris Antognini Indexes: Structure, Splits and Free Space Management Internals"]">Chris Antognini Indexes: Structure, Splits and Free Space Management Internals Oaktable World Indexes: Structure, Splits and Free Space Management Internals
11 #222222;" data-sheets-value="[null,2,"Martin Bach A deep dive into HCC internals and mechanics"]">Martin Bach A deep dive into HCC internals and mechanics Oaktable World A deep dive into HCC internals and mechanics
12 CMillsap, EGrancher, JLewis, JGennick Oaktable World Ted Talks
1 Jonathan Lewis Oaktable World Calculating Selectivity
2 #222222;" data-sheets-value="[null,2,"Greg Rahn The Current State of SQL + Hadoop"]">Greg Rahn The Current State of SQL + Hadoop Oaktable World The Current State of SQL + Hadoop
3 #222222;" data-sheets-value="[null,2,"Kevin Closson SLOB \u2013 For More Than I/O!"]">Kevin Closson SLOB – For More Than I/O! Oaktable World SLOB – For More Than I/O!
4 Toons Oaktable World Why DBMS’s Still Lack SQL Assertions Support (A polite excuse)
Tuesday 8 #222222;" data-sheets-value="[null,2,"Carlos Sierra "]">Carlos Sierra Oaktable World introducing edb360 tool
9 #222222;" data-sheets-value="[null,2,"Kent Graziano Worst Practices in DW Design"]">Kent Graziano Worst Practices in DW Design Oaktable World Worst Practices in DW Design
1 #222222;" data-sheets-value="[null,2,"Tanel Poder Hacking Oracle 12c"]">Tanel Poder Hacking Oracle 12c Oaktable World Hacking Oracle 12c
11 Jeremiah Wilton Oaktable World Oracle on EC2: You’re doing it wrong
12 KOsborne, AGorbachev, JLewis, JHarris, Oaktable World Ted Talks
1 Connor McDonald Oaktable World clone db
2 #222222;" data-sheets-value="[null,2,"Frits Hoogland "]">Frits Hoogland Oaktable World Profiling the logwriter and database writer (with version update)
3 #222222;" data-sheets-value="[null,2,"Alex Gorbachev"]">Alex Gorbachev Oaktable World Anomaly detection on performance data
4 Karl Arao Capacity Planning: SLAs, KPIs, Headroom, Expiry Date Oaktable World Capacity Planning: SLAs, KPIs, Headroom, Expiry Date
Wednesday 1:45 CON8134 Kellyn Pot’Vin M South 303 Zero to Manageability with EM12c
4.45 CON7726 Kellyn Pot’Vin M South 104 Oracle Exadata Database Machine Administration and Monitoring Made Easy
4:45 CON5773 Eric Grancher M South 306 Database Storage 101 Planning and Monitoring: Performance and Reliability
4:45 CON5915 Jonathan Lewis M South 102 Reading an AWR Report
Thursday 10:45 CON6812 Tanel,Kerry M South 104 Oracle Database In-Memory in Action
12:00 CON10038 Jeremiah Wilton, others M South 301 Customer Panel: Private Cloud Consolidation, Standardization & Automation
1:15 CON3671 Kyle Hailey M north 130 Lies, Damned Lies, and I/O Statistics
2:30 CON4053 Kyle Hailey M north 130 ASHmasters
2:30 CON4039 John Jay King Marriott Marquis Nob Hill C/D Gauging Oracle ADF Application Performance: Instrumenting Your Oracle ADF Code

another good link for talks at OOW14

business vision

Openworld day minus 3

Its day minus 3, or day +1 depending on your point of view at Openworld 2014.

I’m here a few days early for the Ace Director briefings, where a selection of product managers provide an insight into what is coming in the Oracle world, either at Openworld or in the coming year.

I must admit, I arrived to the briefings somewhat sceptical because a couple of years ago, when I was last at the briefings, the managers seemed very hesitant to share anything with us, generally waving us off with “you’ll need to wait until the conference”, which of course defeats the entire purpose.

However, so far, now that I’m at the conclusion of day 1, I’ve been very impressed. The product managers were very open and honest, happy to inform us of the things they’re very proud of, and also, the things that still need more work, or have not panned out as well they expected. Nice and genuine. And perhaps even more important was that there was a good amount of passion for product this year. People that are excited about their products are much more interesting to listen to.

Today has mainly been about middleware and client, which aren’t my area, but even so, its been good to see whats been happening in that area. Obviously, its all about smart phones and tablets, but there was some very impressive stuff on the UI front. Apologies, but non-disclosure agreements prohibit us from sharing too much content, but a lot of it you’ll be able to see at Openworld, or in the presentations that come later.

Thomas Kurian will be givin us an address shortly – it will be interesting to hear what’s floating his boat (so to speak).

[Disclosure: The Oracle Ace Director program has paid for my travel to Openworld]

PL/SQL New Features in Oracle Database 12c

I recently put some more PL/SQL new features articles live.

I’ve also posted a top-level new features article.

This contains a number smaller features as well as links to other articles on the site that discuss some of the new features in greater depth.

I’ve got a couple of PL/SQL books I’ve got to read and review, but I’ve been holding back because I wanted to get my take on this subject written before I was influenced by others. I guess I don’t have that excuse any more. :)



PL/SQL New Features in Oracle Database 12c was first posted on September 25, 2014 at 8:52 pm.
©2012 "The ORACLE-BASE Blog". Use of this feed is for personal non-commercial use only. If you are not reading this article in your feed reader, then the site is guilty of copyright infringement.

Oracle OpenWorld 2014 : The Journey Begins

I did my normal last minute packing last night. After a quick panic this morning, I was off in the taxi I for the airport.

I find it amazing how sense goes out of the window at airports. There was a big sign saying “Put empty trays on rollers”, so people were either leaving them or stacking them up. Either way, they were getting in the way. WTF? RTMF!

The first flight to Frankfurt was fine. While waiting to board I was staring at the guy in front thinking, “I’m sure I could do his fade better than that!” I might have to start… :)

The flight to SFO went without incident. I met Joze SenegacnikØyvind Isene, Martin Bach and Harshad Oak during it. :) Once we landed, it was the airport shuttle to the hotel, then straight out with the family for some food. Its sad that we only get to meet at conferences. :)

Tomorrow is the ACED briefing, so lots of tweets telling people I can’t tell them what his going on. :)



Oracle OpenWorld 2014 : The Journey Begins was first posted on September 25, 2014 at 5:26 pm.
©2012 "The ORACLE-BASE Blog". Use of this feed is for personal non-commercial use only. If you are not reading this article in your feed reader, then the site is guilty of copyright infringement.

Oaktable World & Delphix Labs on Mon & Tues

Next week during Oracle Open World, be sure and come on Monday and Tuesday to the free Oaktable World and  on Tuesday to Delphix hands on lab and free 90 day trial version at #CloneAttack at the same venue as Oaktable World.   The labs will also be joined by DBvisit for #RepAttack and Solarwinds (Confio) for #MonitorAttack.


Screen Shot 2014-09-12 at 12.38.32 PM

Screen Shot 2014-09-25 at 8.30.39 AM

Beer, Meat, Explode


Screen Shot 2014-09-15 at 10.57.34 AM


Screen Shot 2014-09-15 at 10.57.41 AM

Screen Shot 2014-09-22 at 7.18.15 AM



Is X a Big Data product?

Virtually everyone in data space today claims that they are a Big Data vendor and that their products are Big Data products. Of course — if you are not in Big Data then you are legacy. So how do you know whether a product is a Big Data product?

While there might not be fully objective criteria (and mainly because Big Data definition is still in the air and people interpret it as they see fit for their purpose), I think I can provide one good suggestion on how to determine when a certain product is NOT a Big Data product. Of course, it will depend on the definition of Big Data that you believe in.

I believe that Big Data is mostly about being “affordable at scale“, quoting Jeff Needham, my good friend and fellow member of OakTable Network. In practice, that means commodity software, commodity hardware and commodity operations of the solution. I won’t define the thresholds of scale in terabytes or levels of complexity and etc but I can provide some guidelines.

Talking about commodity hardware, it’s generally based on x86 architecture (though, some say ARM is emerging but it’s been emerging way too long for my liking) with some reasonably priced components. That would typically be dual socket systems with up to few hundred GB of RAM and maybe a dozen disks or some SSDs and cost effective networking. If we narrow down to Hadoop-like architectures then a cluster node would typically cost between $4,000 and $10,000. Anything significantly above that is probably overpriced or overspec’ed.

OK. Now that we are good with hardware let’s look at software. Obviously, open-source software without any commercial support qualifies for commodity and being affordable. If you are Facebook-scale (or getting relatively close), your commercial support can be you own large scale, capable engineering team. Otherwise, you will most likely have commercial support. Back to Hadoop world, you should expect to pay for commercially supported Hadoop distribution (whoever it is out of three leading distributions — Cloudera, Hortonworks or MapR) the same order of magnitude as for the hardware itself. Annually, it would be a fraction of hardware cost or over three years it would be about the cost of hardware purchase or slightly above depending on the level of support and platform features. You get an idea. Non-open-source products licensed on similar pricing levels are Big Data products too — you don’t have to be open-source to call your technology Big Data.

Let’s take an example of a supposedly Big Data product. If a product has “Big Data” in the name, it surely must be a Big Data product. Eh?

I love quite a few Oracle products so why don’t I look at their line up… Big Data Appliance is a prebuilt Hadoop system or Hadoop appliance with 18 powerful data nodes per rack and list price tag of $525K per rack. That gets you to almost $30K per data node which is quite high and you would likely not build your own clusters like that. Add to that about $100K per year of support and maintenance for systems and OS (you can check pricing in the public engineered system price list). Big Data Appliance does include commercially supported Cloudera distribution so it might not be that terrible pricing-wise. If you have experience buying Oracle products you also know that customers don’t pay list prices. Thus, I can accept that Big Data Appliance can actually be called a Big Data product… just.

Now let’s looks at another product — Big Data SQL. It has been announced but hasn’t quite been released just yet (or did I miss it?). Awesome product, by the way. Great way to push some of data-intensive SQL processing from Oracle Database down to Hadoop. Now, it’s probably not widely known (since it wasn’t really publicly released and sold yet) that Big Data SQL is licensed per disk spindle and it’s $4,000 per spindle as list-price. Add to that typical 22% of annual software support and maintenance from Oracle. If I were to license Big Data SQL for a 100 nodes Hadoop cluster with 12 disks per node, it would cost me almost $5M based on list-price. Don’t forget to add 22% annually. This is order of magnitude more than I would spend on the hardware building such cluster. But wait, it looks like Big Data SQL is only working with Big Data Appliance. Even in this case, the cost of Big Data SQL per single rack appliance is $864K + 22% annually and that’s just one additional tool for your Big Data platform.

Based on what I know about Big Data SQL (and assuming it works as advertised when released), I love it — push code to data, scalable massive parallel processing, leveraging great features from Exadata Storage software. Great job to the folks who developed this product. Unfortunately, I cannot call it a Big Data product — it’s not affordable at scale.

So when you look at other vendors calling their product Big Data — do this costing assessment and if it doesn’t come as affordable at scale then it’s not a Big Data product. And feel free to share your assessments for the rest of us here. I’m sure not everyone will share my line of thinking here either. Fire way.

New 12c Default: Controlfile Autobackup On – But only for Multitenant

This a a little discovery from my present Oracle Database 12c New Features course in Copenhagen: The default setting for Controlfile Autobackup has changed to ON – but only for Multitenant, apparently:

$ rman target sys/oracle_4U@cdb1

Recovery Manager: Release - Production on Wed Sep 24 13:28:39 2014

Copyright (c) 1982, 2013, Oracle and/or its affiliates.  All rights reserved.

connected to target database: CDB1 (DBID=832467154)

RMAN> select cdb from v$database;

using target database control file instead of recovery catalog

RMAN> show controlfile autobackup;

RMAN configuration parameters for database with db_unique_name CDB1 are:

Above you see the setting for a container database (CDB). Now an ordinary (Non-CDB) 12c Database:

$ rman target sys/oracle_4U@orcl

Recovery Manager: Release - Production on Wed Sep 24 13:33:27 2014

Copyright (c) 1982, 2013, Oracle and/or its affiliates.  All rights reserved.

connected to target database: ORCL (DBID=1386527354)

RMAN> select cdb from v$database;

using target database control file instead of recovery catalog

RMAN> show controlfile autobackup;

RMAN configuration parameters for database with db_unique_name ORCL are:

I really wonder why we have this difference! Is that still so with Don’t believe it, test it! :-)

Tagged: 12c New Features, Backup & Recovery, Multitenant, RMAN

Oracle Open World schedule

Here is my schedule of presentations at Open World this coming week.

I most excited about my talk on Sunday. The Phoenix Project is a awesome book everyone should read, DevOps is the rising star of IT and this talk will empower DBAs to take their careers to the next level with data virtualization – virtualize, govern and deliver data efficiently boosting your companies efficiencies and bottom line much greater than any other change one could make as a DBA.


Lock Time

Here’s a little detail I was forced to re-learn yesterday; it’s one of those things where it’s easy to say “yes, obviously” AFTER you’ve had it explained so I’m going to start by posing it as a question. Here are two samples of PL/SQL that using locking to handle a simple synchronisation mechanism; one uses a table as an object that can be locked, the other uses Oracle’s dbms_lock package. I’ve posted the code for each fragment, and a sample of what you see in v$lock if two sessions execute the code one after the other:

Table locking – the second session to run this code will wait for the first session to commit or rollback:

        lock table t1 in exclusive mode;

ADDR             KADDR                   SID TY        ID1        ID2      LMODE    REQUEST      CTIME      BLOCK
---------------- ---------------- ---------- -- ---------- ---------- ---------- ---------- ---------- ----------
00007FF409E57BF8 00007FF409E57C58         15 TM     157778          0          0          6         65          0
00007FF409E57BF8 00007FF409E57C58        125 TM     157778          0          6          0         91          1

Using dbms_lock.

variable m_handle       varchar2(255);

        n1              number;

                lockname        => 'Synchronize',
                lockhandle      => :m_handle


        n1 := dbms_lock.request(
                lockhandle              => :m_handle,
                lockmode                => dbms_lock.x_mode,
                timeout                 => dbms_lock.maxwait,
                release_on_commit       => true         -- the default is false !!



ADDR             KADDR                   SID TY        ID1        ID2      LMODE    REQUEST      CTIME      BLOCK
---------------- ---------------- ---------- -- ---------- ---------- ---------- ---------- ---------- ----------
000000008ED8F738 000000008ED8F790         15 UL 1073742427          0          0          6         42          0
000000008ED902B0 000000008ED90308        125 UL 1073742427          0          6          0        103          1

The big question is this – although the two code fragments produce the same effects in terms of lock waits and the reports from v$lock, what’s the big difference in the way that they are reported in the AWR report.

The high-level difference appears in the Time Model stats. Here are two extracts showing the difference:

Using dbms_lock.

Statistic Name                                       Time (s) % of DB Time
------------------------------------------ ------------------ ------------
sql execute elapsed time                                 65.4         99.9
PL/SQL execution elapsed time                            63.8         97.4

-> Captured SQL account for    2.8% of Total DB Time (s):              65
-> Captured PL/SQL account for   99.4% of Total DB Time (s):              65

        Elapsed                  Elapsed Time
        Time (s)    Executions  per Exec (s)  %Total   %CPU    %IO    SQL Id
---------------- -------------- ------------- ------ ------ ------ -------------
            63.7              1         63.72   97.3     .0     .0 10u1qbw4a27sp
Module: SQL*Plus
declare n1 number; begin dbms_lock.allocate_unique
( lockname => 'Synchronize', lockhandle
 => :m_handle ); dbms_output.put_line(:m_handle); n
1 := dbms_lock.request( lockhandle => :m_handle,

Table locking method:

Time Model Statistics

Statistic Name                                       Time (s) % of DB Time
------------------------------------------ ------------------ ------------
sql execute elapsed time                                 95.5         99.9
DB CPU                                                    0.9           .9
parse time elapsed                                        0.1           .1
hard parse elapsed time                                   0.1           .1
PL/SQL execution elapsed time                             0.1           .1

SQL ordered by Elapsed Time

-> Captured SQL account for   99.6% of Total DB Time (s):              96
-> Captured PL/SQL account for   98.7% of Total DB Time (s):              96

        Elapsed                  Elapsed Time
        Time (s)    Executions  per Exec (s)  %Total   %CPU    %IO    SQL Id
---------------- -------------- ------------- ------ ------ ------ -------------
            93.9              1         93.88   98.3     .0     .0 8apkdghttmndx
Module: SQL*Plus
begin lock table t1 in exclusive mode; end;

            93.9              1         93.88   98.3     .0     .0 29fwr53agvbc0
Module: SQL*Plus

The time spent waiting for the table lock is reported purely as SQL execution time in the Time Model stats; but the time spent waiting for the user-defined lock is reported as SQL execution time AND as PL/SQL execution time. I had forgotten this yesterday so, as I skipped through the various headline figures of an hourly snapshot, I was amazed to see the Time Model stats reporting 33,000 seconds of PL/SQL and 66,000 seconds of SQL – how on earth do you manage to do that much PL/SQL on any Oracle system. (To add to the embarrassment, it had only been a few moments earlier that I’d gone through the Top 5 Timed Events and said something like: “you can ignore all time spent on ‘enq: UL – contention’, it’s probably just synchronisation code”.

In this case the SQL ordered by Elapsed Time gives you a strong visual clue about what’s going on – but it won’t always be that obvious.

Bottom Line:

PL/SQL execution time includes the time spent waitng for UL locks, don’t forget that you may need to subtract wait time for ‘enq: UL – contention’ from the PL/SQL time before you start to worry about how much actual work you’re doing in PL/SQL.