Oracle 19c – Features We Know About

Oracle Open World was interesting like every year. This year, Oracle started talking about features that will probably be in Oracle 19c (which is the last 12.2 release). The rumor says that it will be out in the first half of 2019 (somewhere around April-May).

As you might know, I didn’t attend a lot of sessions, but managed to gather some information about expected features (given Oracle’s safe harbor of course).

Continue reading “Oracle 19c – Features We Know About”

Getting Crazy with Analytic Functions and Group By

This topic has been sitting in my backlog for a long time and I finally decided to write it. Analytic functions are not so new anymore (they’ve been around since Oracle 8i), but they are still a very powerful tool.

This is based on a real case I had quite a few years ago. A client came to me with a question regarding a graph they had to generate.

Continue reading “Getting Crazy with Analytic Functions and Group By”

When Even Histograms Can’t Help

Here is an interesting optimizer case where updated statistics and histograms cannot solve the performance problem. This might be an uncommon case, but it happened for one of my clients and this post is the result of some research on this.

Continue reading “When Even Histograms Can’t Help”

Oracle Challenge #3 – SQL

I debated quite a lot before writing this post. When I wrote the post about interviewing a DBA, in the “technical questions I do ask” part I just gave a general explanation of what I ask, but didn’t reveal the real questions. Now, more than 3 years later, I decided to give one of the questions as a challenge here.

Continue reading “Oracle Challenge #3 – SQL”

V$LOCK Missing Information

In our first BCOUG Tech Day conference, I presented my session “Look Inside the Locking Mechanism”. I presented this topics before a few times and prepared a few demos to show different locking scenarios.

During the BCOUG Tech Day I did the same, while the only difference was that for the demo I used Oracle 12.2 PDB (I think in previous times I always used 11.2). During one of the demos I noticed something strange.

Continue reading “V$LOCK Missing Information”

Tool to Assist with Basic SQL Analysis

I just came back from RMOUG Training Days conference. It was my first time in Colorado (and obviously my first RMOUG training day) and it was really great (I wrote about it in another post).

During my second session (From 4 Minutes to 8 Seconds – about a real SQL tuning case I had quite a few years ago), I mentioned that one thing that I usually do when I see a query and need to analyze it, is to take a piece of paper and draw the tables and relations between them. When I later look at the execution plan and try to understand what Oracle does, it helps a lot if I know the structure of the tables. There is a big difference between queries built like a “star” (a single table in the middle, while the others are joined to it) or a “line” (each table is joined to the next one), or any other structure.

Continue reading “Tool to Assist with Basic SQL Analysis”