June 2015

Indexing and Transparent Data Encryption Part III (You Can’t Do That)

In Part II of this series, we looked at how we can create a B-Tree index on a encrypted column, providing we do not apply salt during encryption. However, this is not the only restriction with regard to indexing an encrypted column using column-based encryption. If we attempt to create an index that is not a […]

Dynamic Sampling

Following on from an OTN posting about dynamic sampling difficulties I had planned to write a blog post about the difference between “not sampling when hinted” and “ignoring the sample” – but Mohamed Houri got there before me.

It’s just worth highlighing a little detail that is often overlooked, though: there are two versions of the dynamic_sampling() hint, the cursor level and the table level, and the number of blocks sampled at a particular level is dependent on which version you are using.  Level 4 at the cursor level, for example, will sample 64 blocks if and only if a certain condition is met,  but at the table level it will sample 256 blocks unconditionally.

CBO Series

About a year ago I came across a couple of useful articles from Stefan Koehler, which is when I added his name to my blog roll. As an introduction for other readers I’ve compiled an index for a series of articles he wrote about the CBO viewed, largely, from the perspective of using Oracle to run SAP. Today I realised I hadn’t got around to publishing it, and there’s been a couple of additions since I first started to compile the list.

Testing 12c CDB Resource Plans and a little bit about OEM Express

Inspired by Sue Lee’s presentation at Enkitec’s E4 conference I decided to re-run my test suite to work out how you can use Database and I/O Resource Manager in Oracle 12.1.0.2.2 to help consolidating databases in the new Multi-Tenant architecture. I should point out briefly that the use of Multi-Tenant as demonstrated in this article requires you to have a license. Tuning tools shown will also require you to be appropriately licensed…

Setup

A new challenge…

After the last 16 years in the contracting and consulting world, for dozens of clients in Australia and other countries around the world, its time for a change of direction.  Whilst doing work with Oracle systems has always been (and continues to be) rewarding, I realised that a lot of the motivation for being at client sites was the sharing of information with developers and DBA’s at those clients so they could get the most out of their Oracle investment.  Similarly, its really cool to speak at conferences to let people explore the Oracle technology in perhaps way they had not thought of, and similarly, blogging about features and idiosyncracies that we stumble upon.  Whatever the medium (and even whatever the technology, whether it be Oracle or otherwise), the concept of an “IT community”, ie, people being keen to share, debate, and discuss has always been one of the things I like about my profession.

12c Parallel Execution New Features: PX SELECTOR

Continuing my series on new 12c Parallel Execution features: I've already mentioned the new PX SELECTOR operator as part of the new Concurrent UNION ALL feature where it plays a key role.

Optimizer curiosity in 12.1.0.2

For almost as long as I can remember, the optimizer has had a nifty little trick when you (in effect) try to combine two different usage models within a single SQL.  To explain that, I’m referring to the common scenario of: "If a bind value is provided by the caller, then use it, otherwise it shouldn’t limit the result set.  So we commonly see queries like:

select *
from MY_TABLE
where COL1 = NVL(:mybindvar, COL1)

[For ease of discussion, we’ll assume COL1 is not nullable]

Anyway, the nice little optimizer trick was to optimize the query to handle the two separate use cases, so you see a CONCATENATION step in the execution plan, and two FILTER’s, one to handle the case when the bind variable is null, and one to handle the case where it is provided. 

Site maintenance and how to manage changing URLs

DiagnosticsAfter my recent rants about Oracle changing URLs and breaking stuff, I’ve actually done some changes myself. :)

From time to time change is forced on internet content producers. This might be because of platform changes, or changes in the way search engines behave. The important thing is how you handle that change.

EM 12.1.0.5 has been announced!

The latest version of Enterprise Manager, EM 12.1.0.5, has been announced! The announcement can be seen here. Obviously, there will be a number of posts that come out about it over the next few weeks, so I’ll add this post here as a quick notification and will update it with links to more information as it becomes available.

Technical Articles

Managing the Hybrid Cloud with Oracle Enterprise Manager – Demo
A First Technical Look At Hybrid Cloning in EM12c Release 5

OT: How to interview an Oracle DBA candidate (NOT)

Yesterday T.J. wrote on the Oracle-L mailing list : “ For those of you who have conducted job interviews, what sort of questions have you found to be effective in evaluating a candidate’s skill level?”
I remember the interview at which I could not answer the question “how do you enable block change tracking in a database?” (The answer is “ALTER DATABASE ENABLE BLOCK CHANGE TRACKING.”)
I remember the time when I could not get hired at Google because...(read more)