Who's online

There are currently 0 users and 43 guests online.

Recent comments



Can you justify your data ?

People ask me to justify use of Delphix. I can understand. Delphix is new and often, most of my friends who are DBAs respond with “I can copy a database myself. So Delphix can copy 10 TB in 10 minutes with 0.0001 TB space. That’s a neat parlor game magic trick, so what?”  Well that’s missing the whole boat. The question won’t be why you should use Delphix but “can you  justify working without Delphix?”

Delphix is amazingly positioned at nexus of data concerns right now – the right place at the right time :

What is Delphix ? (video presentation)

#555555;">According to a recent IDC study, on average Delphix

  • pays for itself in 4.3 months
  • 461% ROI over 5 years
  • 96.8% reduction in database storage
  • $50 Million predicted annual benefit for organizations over 75,000 employees

#555555;">Delphix is used by over 100 of the Fortune 500.

#555555;">What is Delphix? Why is Delphix important? What problems does Delphix solve in the industry?

#555555;">Here is a slide deck I put together for KSCOPE :

12c – Nested tables vs Associative arrays

This was going to the be the immediate follow up to my previous post, but came out and I got all excited about that and forgot to post this one :-)

Anyway, the previous post showed how easy it is to convert between nested tables and associative arrays.  The nice thing in 12c is that this is no longer needed – you can query the associative arrays directly security grrr…

One of my favourite security "tricks" used to be the following:

SQL> [create|alter] user MY_USER identified by values 'impossible';

Looks odd, but by setting the encrypted value of someone’s password to something that it is impossible to encrypt to, means you’ll never be able to connect as that account.  (Think schema’s owning objects etc).

I hear you ask: "Why not just lock the account?"

Well…in my opinion, that’s a security hole.  Let’s say Oracle publishes a security bug concerning (say) the MDSYS schema.  As a hacker, I’d like to know if a database has the MDSYS schema.  All I need do is:

SQL> connect MDSYS/nonsense

Why is that a security hole ?  Because I wont get "Invalid username or password".  I’ll get "ORA-28000: the account is locked" and voila…Now I know that the MDSYS user is present in that database.

ASH visualized in R, ggplot2, Gephi, Jit, HighCharts, Excel ,SVG

There is more and more happening in the world of visualization and visualizing Oracle performance specifically with v$active_session_history.

Of these visualizations,  the one pushing the envelope the most is Marcin Przepiorowski. Marcin is responsible for writing S-ASH , ie Simulated ASH versions 2.1,2.2 and 2.3. See

Here are some examples of what I have seen happening out there in the web with these visualizations grouped by the visualization tool.

To subset or not to subset

There was a problem at a customer in application development where using full copies for developers and QA was causing excessive storage usage and they wanted to reduce costs , so they decided to use subsets of the production development and QA
  • Data growing, storage costs too high, decided to roll out subsetting
  • App teams and IT Ops teams had to coordinate and manage the complexity of the  shift to subsets in dev/test
  • Scripts had to be written to extract the correct and coherent data, such as correct date ranges and respect referential integrity
  • It’s difficult to get 50% of data 100% of skew instead of  50% of data 50% of skew
  • Scripts were constantly breaking as production data evolved requiring more work on the subsetting scripts
  • QA teams had to rewrite automated test scripts to run correctly on subsets
  • Time lost in ADLC, SDLC to enable subsets to work (converting CapEx into higher OpEx) put pressure

Finding the blocking SQL in a lock wait

#555555;">One of my pet peeves on Oracle is the inability to find out what SQL took out a lock that another user is waiting. It’s easy to find the waiting user and their SQL with v$session by looking at v$session.event where the event is an “enqueue” (v8 and v9) or “enq: TX – row lock contention” and then looking up their SQL via the v$session.sql_hash_value which joins to v$sql.hash_value for the v$sql.sql_text.

Excel connect to Oracle – 64bit and 32bit issues

#555555;">Wow, thanks to

#555555;">Process Monitor   #2970a6;" href="">

#555555;">I was able track down why I couldn’t connect to Oracle from Excel.

#555555;">I had wanted to try some of the examples Charles Hooper has posted on connecting to and monitoring Oracle, for example

#555555;">#2970a6;" href="">

Delphix 4.1 releases! Oracle 12c PDBs, Sybase, Amazon AWS and Developer Jetpack

Delphix 4.1 just came out last week. It may sound only like a point release but there is an amazing amount of new technology:

Plagiarism and Posting

I received an interesting question as a comment on another post (which I’ll approve as soon as I post this one) and I thought it was interesting enough to add a completely separate post on my thoughts. In essence, the comment was along the lines of this:

“With so much content and articles do you ever run into any problems of plagiarism or copyright violation? My blog has a lot of exclusive content I’ve either written myself or outsourced but it appears a lot of it is popping it up all over the internet without my permission. Do you know any methods to help stop content from being stolen? I’d truly appreciate it.”

I look at this from a number of different perspectives.