The Best Laid Plans

In a forum I contribute to the following question was asked:


Can adaptive cursor sharing (ACS) depend on execution order ?

The issue described a relatively basic query that changed execution plans apparently due to the order the query statements were run based on bind variable values. It’s an interesting issue that testing has verified. The tests are reproduced below, in abbreviated form, so let’s look at what was executed and what execution plans were used.

(more...)

You Can Get There Making All Right-Hand Turns But …

It would appear that some DBAs are still using the optimizer_index_cost_adj parameter to make index access paths more ‘desirable’ to the optimizer. In decades past this might have been a good strategy however with the improvement in statistics gathering in recent relesaes of Oracle this might not be the case. Let’s look at an example to see why this might do more ‘harm’ than good.

The optimizer_index_cost_adj parameter was first provided in Oracle 9i as (more...)

In Deference

An interesting ‘problem’ surfaced a while ago, one where a user with zero quota on every tablespace could successfully create tables. Of course once it was time to insert data the inserts failed, but this was confusing the user creating the tables. The ‘problem’ stems from enabling deferred segment creation in the database. Let’s see how that can create a confusing situation,

Deferred segment creation allows tables and indexes to be created without physical segments (more...)

Memory Improvement

Oracle 12c (version 12.1.0.2) offers the option of using in-memory processing to speed things along. Called the In-memory option it’s installed when you install the 12.1.0.2 software. Using it can make a considerable difference in processing speed, provided you have sufficient resources (RAM) available. Let’s revisit an older example, on Bloom filters, and see if Oracle processes things any faster in-memory.

Looking again at the Bloom filter example using (more...)

To Skip, Or Not To Skip

An interesting issue presented itself just recently with a logical standby database I manage. The database is used for generating reports and the client wanted to skip all DML activity for a given schema as it wasn’t necessary for reporting purposes. I had done this in version 10.2.0.x; it was a simple procedure on a low-traffic database:


alter database stop logical standby apply;
exec dbms_logstdby.skip('DML','','%')
alter database start logical standby apply;

(more...)

Map Reading

Consider the following concept: When you are born you are issued a map showing the direction your life will take. Along the way people will come into your life and help you make sense of parts of that map. You may not know these people at the time but they will be important in establishing where you are to be headed and possibly what you should be doing. Eventually you can read the entire map (more...)

“ID, Please”

In a forum I frequent the following question was raised:

We see some sqls that have been running for a long time in our prod DB, 11.2. when we check the v$session, i see null sql ids for them.
The sql_address shows up as 00. I would like to know what these sqls are doing because they correspond to processes that are burning up
the CPU and driving the usage to > 85%.

An (more...)

Blooms

In Oracle releases 10.2.0.x and later join processing can be made more efficient by the use of Bloom filters, primarily to reduce traffic between parallel query slaves. What is a Bloom filter? Named after Burton Howard Bloom, who came up with the concept in the 1970s, it’s an efficient data structure used to quickly determine if an element has a high probability of being a member of a given set. It’s based (more...)

“You’re A Real ACE”

Recently I was declared, for want of a better word, an Oracle ACE. I was nominated by someone I respect and admire; just the nomination itself was enough, really, to make my day. When I received notification that I had been selected I was truly surprised. I immediately thanked my nominator, who told me:


"Still, it is just a nomination form, and you did all the work that
made it so impressive. Congratulations!"

Honestly, (more...)

That’s … Huge!

Recently I’ve noticed the occasional thread in Oracle newsgroups and lists asking about hugepages support in Linux, including ‘best practices’ for hugepages configuration. This information is out on that ‘world-wide web’ in various places; I’d rather put a lot of that information in this article to provide an easier way to get to it. I’ll cover what hugepages are, what they do, what they can’t do and how best to allocate them for your particular (more...)