The Importance of the In-Memory DUPLICATE Clause for a RAC System

With the INMEMORY clause you can specify 4 sub-clauses: The MEMCOMPRESS clause specifies whether and how compression is used The PRIORITY clause specifies the priority (“order”) in which the segments are loaded when the IMCS is populated The DISTRIBUTE clause specifies how data is distributed across RAC instances The DUPLICATE clause specifies whether and how […]

About Oracle’s Code of Ethics, MOS Confidentiality Clause, and Content Stolen from My Website

I strive to keep the number non-technical posts on this blog to the minimum. However, there are days when a non-technical post has to be written. This is one of such days. Oracle Corporation, concerned about legal and ethical issues, not only provides to its employees a document entitled Code of Ethics and Business Conduct, […]

The APPROX_COUNT_DISTINCT Function – A Test Case

The aim of this post is not to explain how the APPROX_COUNT_DISTINCT function works (you find basic information in the documentation and in this post written by Luca Canali), but to show you the results of a test case I run to assess how well it works. Here’s what I did… I created a table […]


Every new Oracle Database patch introduces not only documented features, but also undocumented ones. In this short post I would like to provide information about an enhancement of the RESULT_CACHE hint. According the documentation, the RESULT_CACHE hint has no parameter. But, as of, at least the SNAPSHOT parameter is supported. Its purpose is to […]

Troubleshooting Oracle Performance, 2nd Edition – Downloadable Files

This is just a short post to point out that the downloadable files are available here. You can download either a ZIP or a TAR file containing all files, or single files. Since every file has its own URL, you can also directly executed them in SQL*Plus. For example: SQL> @ I’m sorry for the […]

Differences between the First and the Second Edition of Troubleshooting Oracle Performance

Several people asked me how much I changed in the second edition. The short answer is… A LOT. The main goals set for the revision of the book were the following: Add content about Oracle Database 11g Release 2 and Oracle Database 12c Release 1. Remove content about Oracle9i and Oracle Database 10g Release 1. […]

Troubleshooting Oracle Performance, 2nd Edition

Few days ago the second edition of Troubleshooting Oracle Performance was finally published. Today, I updated the pages on this site that provide information about the book. It goes without saying that the new pages cover the second edition. Hence, from here you can access the description, the table of contents, the forewords written by […]

Upcoming Speaking Engagements

After about four months without any speaking engagements, over the next three months I’ll have the opportunity to speak at several events. I’m looking forward to meet you at one of them! April 3, I’ll be in Baden-Dättwil to speak about “ASH Analytics” at an event organized by SOUG. Since this is a new presentation […]

CBO Days 2014

The company I work for, Trivadis, is very pleased to organize, on the 10th and 11th of June, an outstanding seminar with top guest speakers in Zurich. This year’s focus will be on the Oracle query optimizer, also known as a cost-based optimizer (CBO). The query optimizer is not only one of the most complex […]

Extension Bypassed Because of Missing Histogram

Today, while tuning a fairly complex query experiencing wrong cardinality estimates, I noticed something I was not aware of. Hence, I thought to write this short post to illustrate how to reproduce the problem I experienced… Create the test table (notice the correlation between the data of the two columns): SQL> CREATE TABLE t 2 […]