Optimizer Bugs and Issues

I wrote before about optimizer changes after upgrades, so this is a quick post about some more information related to this topic. As I wrote in the post I mentioned above, most of the issues we run into after upgrading are performance related. I guess this is the case because it’s one of the most … Continue reading Optimizer Bugs and Issues

A quick look at Oracle 12.2 performance instrumentation

Thanks to the prep-work done by Andy Colvin, who continuously and boldly goes where no man has gone before, one of our Exadata systems in the lab is now fully upgraded to It comes fully equipped with the matching cellos to support all the cool new features. Exciting times!

The reason for this post is simple: I have started working on our talk for @Enkitec’s E4 conference in June but (more...)

12.2 Some Cool Partitioning New Features (Big Wheels)

I previously discussed just how easy it is to convert online a non-partitioned table to be partitioned with Oracle Database 12.2. Thought I might run through a number of really cool new partitioning features and capabilities that were also introduced in 12.2. To start, I’m just going to create a basic range-partitioning table and populate […]

Google Big Querry and Oracle Smart Scan

Marveling at the technology is my pastime and lately there are 2 technologies which truly have made me say ' Simply Wow.' One is Google's Big Query and the other one is Oracle's Exadata Smart Scan.

I have been managing data in different databases for a long time to appreciate how critical it is for the client to get the results out of their data as fast as possible. It's all about the returning (more...)

A performance deep dive into column encryption

Actually, this is a follow up post from my performance deep dive into tablespace encryption. After having investigated how tablespace encryption works, this blogpost is looking at the other encryption option, column encryption. A conclusion that can be shared upfront is that despite they basically perform the same function, the implementation and performance consequences are quite different.

Column encryption gives you the ability to choose to encrypt per individual column, that’s kind of obvious. However, (more...)

Bushy Join Trees in Oracle 12.2

There are multiple optimizer features introduced in the Oracle Database 12.2 Release. Bushy Join Trees is the one that I’ll be demonstrating in this post.

First, I’ll create four tables with two indexes:

create table t1 as select rownum n1, rownum n2 from dual connect by  level <= 1000000;
create table t2 as select rownum n1, rownum n2 from dual connect by  level <= 100;
create table t3 as select rownum n1, rownum n2  (more...)

GoldenGate – Restarting a replicat with the command filterduptransactions

If a Goldengate replicat process fails then occasionally on the restart it skips the correct RBA and ‘loses it’s position’. The relative byte address (RBA) is the location within the trail file to indicate the current transaction.

The old school method was to calculate which RBA was the correct one and then restart the replicat. However there is a new command on the block now (pun intended) and I will demonstrate how the two methods (more...)

“ORA-00997: illegal use of LONG datatype” on a CTAS querying a view with a LONG column

Working on the new eDB360 repository I came across this “ORA-00997: illegal use of LONG datatype” while trying to CTAS on the following DBA views:


All these views above include at least a LONG column, which raises the ORA-00997 while trying to do something like: CREATE TABLE edb360.dba#constraints AS SELECT * FROM dba_constraints.

I found several blogs explaining reason and some providing some hints, like using (more...)

Log Buffer #508: A Carnival of the Vanities for DBAs

This Log Buffer Edition covers Oracle, SQL Server and MySQL.


Compiling views: When the FORCE Fails You

Goldengate 12c Troubleshooting XAGENABLE

A performance Deep Dive into Tablespace Encryption

EBS Release 12 Certified with Safari 10 and MacOS Sierra 10.12

Oracle Database 12c ( on VirtualBox

SQL Server:

A Single-Parameter Date Range in SQL Server Reporting Services

Generating Plots Automatically From PowerShell and SQL Server Using Gnuplot

Justify the (more...)

Block Names

There are a number of tiny details that I can never remember when I’m sketching out models to test ideas, and one of those is the PL/SQL block name. Virtually every piece of PL/SQL I write ends up with variables which have one of two prefixes in their names “M_” or “G_” (for memory or global, respectively) but I probably ought to be formal than that, so here’s an example of labelling blocks – specifically, (more...)

Goldengate 12c Troubleshooting XAGENABLE

Oracle RAC with DBFS running as oracle
Goldengate12c running as ggsuser using DBFS and XAGENABLE
Monitoring is running as monitor

ERROR: Transparent Integration with XAG is Enabled but CRS/XAG is not Available (Doc ID 2240440.1)

Modify GLOBALS per Doc ID 2240440.1


setenv (GRID_HOME='/u01/app/12.1.0/grid')

$ ./ggsci

Oracle GoldenGate Command Interpreter for Oracle
Version OGGCORE_12.
Linux, x64, 64bit  (more...)

A performance deep dive into tablespace encryption

This is a run through of a performance investigation into Oracle tablespace encryption. These are the versions this test was performed on:

$ cat /etc/oracle-release
Oracle Linux Server release 6.8
$ /u01/app/oracle/product/ lspatches
24315824;Database PSU, Oracle JavaVM Component (OCT2016)
24006101;Database Patch Set Update : (24006101)

In this test I created an encrypted tablespace:

SQL> create tablespace is_encrypted datafile size 10m autoextend  (more...)

Oracle Tidbits – March 2017 #oratidbit

“Oracle *daily* TidBits” (#oratidbit) published on Facebook, Twitter and Google+ during weekdays in March 2017. You will also see these tidbits, one tidbit at a time, for each page refresh on the right side of this blog as well… Hope you find these helpful to learn something new or to remind you of its existence and use. […]

Decipher EM Error Message for RAC

I am not sure if there is a way to have EM display the actual commands it uses to check and alert errors.

It would be nice to be able to verify using the same syntax.

Examples of errors I was paged for:

Message=ora.net2.network has 1 instances in OFFLINE State
Key Value=resource_ora.network.type_ora.net2.network
Message=ora.host01_2.vip has 1 instances in OFFLINE State
Key Value=resource_ora.cluster_vip_net2.type_ora.host01_2.vip

Of course, crsctl (more...)

Oracle Database 12c ( on VirtualBox

A new pre-built VirtualBox image is available for download  from OTN (updated on March 27, 2017). Once you download, import and configure the VM, you can pretty much do whatever you want. But Roy and Mike have put together a very good lab environment and exercise for you to practice Oracle database upgrade from 11gR2 […]

Fixing Development Mistakes from the Command Line with Delphix TimeFlow

How many times have you had a developer come to you and say, “I just did a bad thing in the database.  Can you recover from what I just did?”

With Delphix virtualization, we make this pretty easy to address from the user interface with a simple slider to recover from a PIT before the catastrophic mistake, but today, we’ll discuss how to do this from the (more...)

Using virt-install/KVM and kickstart to create lots of identical VMs quickly

In preparation for an upcoming talk about Oracle 12.2 I am planning on getting my feet wet with the Oracle 12.2 Sharding option. It seems to be a very interesting subject to get into, but like all new subjects, they can be intimidating at first due to their complexity. So why not use the instructions someone has already written down?

Oracle has a nice series of articles about Sharding. I found the Sharding (more...)

You’re A Natural

"'Why is it,' he said quietly, 'that quite often even the things which are correct just don't seem to be right?'"
-- Norton Juster, The Phantom Tollbooth

A YouTube video is currently being promoted in the database community regarding joins, including the variety of joins available in most database engines (the engine referred to in the video is Oracle). A very good discussion ensues covering inner, left outer, right outer, full outer and cross (more...)

Big Announcement – New Job, New Country (A New Career In A New Town)

After 5 1/2 years at Oracle Corporation, I’ve decided to leave and take on a very exciting new challenge !! President Trump’s office have accepted my nomination to head their IT department in Washington DC, where I’ll be responsible for ensuring all USA government data is stored in a extremely efficient and secure manner. So secure, that […]

Oracle GoldenGate 101 at IOUG 17 and GaOUG TechDays 17 within two month

Losts have changed for me since my last blog post. A new job and new responsibilities, which will include presenting more at conferences on the conference circuit and a few roadshows that are planned in the near future.

Back in the fall of 2016, when most of the Call for Papers open, I had a great idea for introducing people to Oracle GoldenGate. This idea is walk everyone through the progression of replication technology from (more...)