Striving for Optimal Performance
  • Blog
    • Archive
    • Categories
    • Search
  • Troubleshooting Oracle Performance
    • Description
    • Structure
    • Table of Contents
    • Forewords
    • Reviews
    • Downloadable Files
    • Addenda and Errata
    • First Edition
  • Public Appearances
    • Past Public Appearances
  • Contact
  • About

AWR Flush Levels

31 August 2020 Written by Christian Antognini

From version 12.1.0.2 onward, for taking AWR snapshots, you have the choice between four AWR flush levels: BESTFIT, LITE, TYPICAL and ALL. If you check the Oracle Database documentation, you won’t find much information about the difference between them. The best you will find, in the PL/SQL Packages and Types Reference, is the following: The […]

Read More Leave a Comment

MIN/MAX Optimization and Asynchronous Global Index Maintenance

28 June 2019 Written by Christian Antognini

In this short post I would like to point out a non-obvious issue that one of my customers recently hit. On the one hand, it’s a typical case where the query optimizer generates a different (suboptimal) execution plan even though nothing relevant (of course, at first sight only) was changed. On the other hand, in […]

Read More 1 Comment

V$SQL_CS_HISTOGRAMS: What Are the Buckets’ Thresholds?

16 April 2019 Written by Christian Antognini

The contents of the V$SQL_CS_HISTOGRAM view is used by the SQL engine to decide when a cursor is made bind aware, and therefore, when it should use adaptive cursor sharing. For each child cursor, the view shows three buckets. It is of general knowledge that the first one (BUCKET_ID equal 0) is associated with the […]

Read More 2 Comments

CDB Views and Query Optimizer Cardinality Estimations

18 January 2018 Written by Christian Antognini

Today I faced a performance problem caused by a bad cardinality estimation involving a CDB view in a 12.1.0.2 multitenant environment. While solving the problem I did a number of observations that I try to summarize in this blog post. First of all, when checking the execution plan of a query already running for more […]

Read More 2 Comments

Purging Unused Triples Is a Never-ending Operation

18 December 2017 Written by Christian Antognini

This is a short post to point out a problem I recently discovered and for which I couldn’t find information online. Hence, in case you hit it, thanks to this short post I hope that you’ll save some time. The documentation describes a procedure you can use to get rid of dangling triples stored in […]

Read More Leave a Comment

SQL_ADAPTIVE_PLAN_RESOLVED Is Broken

11 December 2017 Written by Christian Antognini

You can use the V$SQL.IS_RESOLVED_ADAPTIVE_PLAN column to know whether the execution plan associated to a child cursor is adaptive or not. Specifically, to know whether the query optimizer selected either an adaptive join method or an adaptive star transformation (notice that it is not set when the hybrid hash distribution is involved). The column takes […]

Read More 1 Comment

SPD State Does Not Change If Adaptive Statistics Are Disabled

28 November 2017 Written by Christian Antognini

The aim of this post is to point out an issue (bug?) that I recently discovered. But, before talking about it, I need to go through a rather long introduction about the state of SQL plan directive (SPD). As of version 12.1.0.2, an SPD has two state information. You can see both of them through […]

Read More 4 Comments

Activating and Deactivating Performance Feedback

26 September 2017 Written by Christian Antognini

Performance feedback is one of the adaptive query optimizer features introduced in Oracle Database 12c. The aim of this short post isn’t to explain how it works, but to simply warn you about a buggy behavior in its configuration. The parameters that control performance feedback in 12c are the following: OPTIMIZER_ADAPTIVE_FEATURES (12.1 only): if set […]

Read More 1 Comment

Offline Analysis of ASH Data with ASHDUMP

6 July 2017 Written by Christian Antognini

From time to time, it happens to me to carry out offline analyses of ASH data. For that, I mean to analyze the ASH data without having access to the database instance that generated it. For that purpose, Oracle Database provides the possibility to dump the content of the ASH buffer as well as information […]

Read More 1 Comment

Adaptive Query Optimization: Backport of 12.2 Configuration in 12.1.0.2

21 December 2016 Written by Christian Antognini

I finally managed to install and test patch 22652097 (PROVIDE SEPARATE CONTROLS FOR ADAPTIVE PLANS AND ADAPTIVE STATISTICS FEATURES). Actually, I installed and tested two patches. The first was installed on top of “Oracle Database Patch 23054246 – Database Patch Set Update 12.1.0.2.160719” (from now on, 12.1.0.2.160719 PSU). The second was installed on top of […]

Read More 2 Comments
Older Entries