SAMPLE costing

People often think when using the SAMPLE clause, that because they are only dealing with a subset of the data, that immediately it should be a much faster operation. And whilst sometimes this is indeed the case, it is not a guarantee. The optimizer probably gives us a hint ( no pun intended) as to how we should interpret the SAMPLE clause.

Lets compare a standard scan of a table, with a sampled scan.

SQL>  (more...)

SQL – is there a better way?

Next Tuesday at 11:20 am at Oracle headquarters there will be a panel discussion on SQL. You can participate whether you are there or not as we are collecting questions ahead of time and will video the panel to be posted later. The panel’s participants will be

Jenkins Plugin for Delphix

In my last blog I talked about trying out Jenkins. In this blog post I want to talk about the new Jenkins plugin for Delphix.

Delphix plugin

Delphix plugin is easy to add. Just navigate to “Manage Jenkins” in the top left

Screen Shot 2016-01-15 at 11.34.17 AM

Then click on “Manage Plugins”

Screen Shot 2016-01-15 at 11.34.27 AM

Then type in “delphix” in the search bar and then click on the “Delphix Jenkins plugin” to install

Screen Shot 2016-01-15 at 11.45.10 AM

Now we can access Delphix APIs through the Jenkins (more...)

Trying out Jenkins

Jenkins seems to be the top code build, integration and QA automation tool to support continuous delivery.

Jenkins allows me to kick of jobs on a schedule or ofter certain events and Jenkins will keep track of the status of the jobs and the results.

To get Jenkins installed,  I read   and then read to try my first Jenkins example.

I installed Jenkins  on one of the VMs from the “landshark” demo environment for (more...)

Another python graph – one wait event

Here is another graph that I created in Python with Pyplot:


This is on my github repository. Note that I blanked out the database name in the example graph to hide it.

This is a graphical version of my onewaitevent.sql script. It queries the AWR looking at a particular wait event per hour. You look at the number of wait events in an hour to see how busy the system was and then (more...)

Yes SQL ! the conference Jan 26 & 27 at Oracle

Wow, this is big – a Yes SQL conference !

Finally ! It’s here ! Yes SQL ! the conference!

At Oracle headquarters !

Send me your questions!

Have questions about SQL? about No SQL? about Yes SQL? About how Oracle is faring in the industry with SQL? I’ll be moderating a SQL panel discussion with

  • Andy Mendelsohn (Executive Vice President for Database Server Technologies)
  • George Lumpkin (Vice President, Product Management)
  • Bryn Llewellyn (Distinguished Product Manager)
  • Steven Feuerstein (Developer Advocate)
  • (more...)

Nested loop internals

Nested loop join appears like the simplest thing there could be — you go through one table, and as you go, per each row found you probe the second table to see if you find any matching rows. But thanks to a number of optimizations introduced in recent Oracle releases, it has become much more complex than that. Randolf Geist has written a great series of posts about this join mechanism (part 1, (more...)

New Website for FOEX online

Last year was very eventful at FOEX, which kept me occupied and kept me from blogging. Thankfully I managed to attend a few conferences and stay in touch with the community through Twitter and Slack on

FOEX is growing a lot and needed a new website design, so we had a brainstorming meeting and decided to again build it in APEX.

Last week we finally decided everything for the website was ready (more...)


I knew I had to try out Neto’s  Graphora when I saw that it was a docker container to collect Oracle performance data and send it to Graphite. Graphite has been on my radar as I see and hear about more and more companies using it to graph and monitor performance data.  Any graphical Oracle performance tool interests me and recently I’ve been spending some time investigating Docker so having everything rolled up in (more...)

Public Appearances H1 2016

Here’s where I’ll hang out in the following months:

26-28 January 2016: BIWA Summit 2016 in Redwood Shores, CA

10-11 February 2016: RMOUG Training Days in Denver, CO

25 February 2016: Yorkshire Database (YoDB) in Leeds, UK

6-10 March (more...)

#DataWarrior 2015 in review

Happy New Year again everybody! Shoutout to Jeff Smith for again being the #1 real person that I actually know who referred people to my blog via his blog. If you don’t already, please add ThatJeffsSmith to your reading list. The stats helper monkeys prepared a 2015 annual report for me. Here’s an excerpt: Madison […]

Covering bases

What would you think if you receive a complaint about plan regression with the following information (from SQL real-time monitoring report) about the good plan:

Global Stats
| Elapsed |   Cpu   |    IO    | Concurrency | Fetch | Buffer | Read | Read  |
| Time(s) | Time(s) | Waits(s) |  Waits(s)   | Calls |  Gets  | Reqs | Bytes |
|      99 |      64 |       36 |        0.00 |     6 |     (more...)

Trying Python and Pyplot for Database Performance Graphs

In the past I have used Excel to graph things related to Oracle database performance. I am trying out Python and the Pyplot library as an alternative to Excel.  I took a graph that I had done in Excel and rewrote it in Python. The graph shows the CPU usage within the database by category.  For example, I labeled the database CPU used by a group of web servers “WEBFARM1” on the graph.

Here is an example graph:


You (more...)

Peeking table block contents

Sometimes you want to know what’s inside a certain block. Of course, the most straightforward way to do it is by dumping block contents using ALTER SYSTEM DUMP DATAFILE contents and analyzing it. However, “straightforward” doesn’t mean “simple”. Block dumps represent its contents in binary format which is hard to read. Sure, there are various utilities (like utl_raw) that can help you convert everything to the human-readable format, but it’s going to be a tedious (more...)

My 2015

Year 2015 was a very good one for me, even though not exactly in a way I expected it to be. I didn’t get to blog as much as I wanted to, and I didn’t get as many interesting performance troubleshooting to do as years before that. But there was lots of other interesting experiences — e.g. designing, running and analyzing all sorts of sophisticated performance tests for a candidate hardware platform.

Of course, (more...)

Happy 2016!

Filed under: Uncategorized Tagged: Happy New Year

Smart Connections with BetterTouchTool

Terminal applications like iTerm2 are a great way to improve your efficiency when connecting to a remote host on your Mac.  As I started making my own shortcut keys I hit the wall.

When I have an OEM agent to check, I’ll log into the box, sudo to the binary owner, go the agent bin directory, and execute emctl status agent.

Here’s the wall:  Shortcut keys from iTerm could change directory and execute a command, (more...)

Test Data Management (TDM) – your downfall or triumph?

A recent post on LinkedIn had this image:


The problem is as old as development. The tester finds a bug but the developer can’t reproduce the bug so closes it as unreproducible.

… but how else can testing show development the bug? Should the developer come over to the testers desk and work on the testers systems while the tester waits?

The problem is that there is a difference in the developer’s environment and the tester’s environment. To solve (more...)

ASH art on Twitter profiles

What fun to see Top Activity aka ASH artwork on twitter profiles:

Screen Shot 2015-12-28 at 1.33.45 PM

Screen Shot 2015-12-28 at 1.32.59 PM

A nice list this holiday season…Top 10 Takeaways on Oracle WebCenter 12c, The Cloud, and User Experience from OpenWorld 2015


Everyone likes lists. They are easy to follow, easy to cross off, and easy to add to. And since it is the holiday season, and you are (hopefully) putting the finishing touches on your gift giving or meal preparation lists, I thought what better way to summarize what we learned from Oracle OpenWorld 2015 in a Top 10 list. However, one caveat to that is these are not listed in any particular order, and they (more...)