In the past I gave a number of 1-day seminars about the new performance features available in Oracle Database 12c Release 1. On the 22nd of February, for the first time, I’ll give an updated version of that seminar with content about both Release 1 and Release 2. Note that because there is more content, […]
Initialization Parameters Set at the PDB Level Are Not Always Honored
Before describing the issue that lead to this post, let’s shortly review how the handling of initialization parameters works in a multitenant environment. Initialization parameters exist at both the CDB level and the PDB level. This is a critical feature because it wouldn’t be acceptable to use the same set of initialization parameters for all […]
Trace Files Split in Multiple Parts
Last January, in the following tweet, I pointed out that the documentation vaguely mentions that a trace file may be split into several files. Did you successfully tested the new MAX_DUMP_FILE_SIZE behavior? If yes, which version/OS?https://t.co/4F9f9wsT95 pic.twitter.com/X2Y7FNf1HG — Christian Antognini (@ChrisAntognini) January 20, 2016 As a follow-up, few days later Jonathan Lewis published a post […]
Adaptive Query Optimization Configuration: Parameters, Preferences and Fix Controls
The aim of this post is to summarize the knowledge about the 12.1 and 12.2 adaptive query optimizer configuration that, as far as I know, is spread over a number of (too many) different sources. First of all, let’s shortly review which adaptive query optimization features exist: Adaptive plans, which are only available in Enterprise […]
Statement-level PARALLEL Hint
UPDATE 2017-08-23: because of the confusing meaning of the term “force” (the meaning that most people give to it isn’t the one of the optimizer traces), I edited the text to make it more clear. Given the number of changes I completely removed the old text. From version 11.2 onward, the PARALLEL hint supports two […]
When CURSOR_SHARING=FORCE, Does Literal Replacement Always Take Place?
The concept of cursor sharing is simple. If an application executes SQL statements containing literals and if cursor sharing is enabled (i.e. CURSOR_SHARING=FORCE), the database engine automatically replaces the literals with bind variables. Thanks to these replacements, hard parses might be turned into soft parses for the SQL statements that differ only in the literals. […]
Wrong Results Involving INDEX FULL SCAN (MIN/MAX) in 12.1.0.2
One of my customers that recently upgraded to 12c hit a bug (22913528) that I think is good to be aware of. Note that as the title of this post states, the problem only occur in 12.1.0.2. At least, I wasn’t able to reproduce it in any other version. To reproduce it you simply need […]
Also Extensions Created Because of SQL Plan Directives Can Invalidate Packages – ...
In a previous post I described a situation where the creation of an extension, independently of whether it’s carried out manually by a person or automatically by the database engine, can lead to the invalidation of PL/SQL objects. In this second post on that subject, I describe, with the help of an example (I love […]
Oracle Database In-Memory Demos
In the last 14 months I delivered a dozen of presentations covering the In-Memory Column Store. During many of them, I spent most of the time showing the audience several demos. The aim of this post is to share with you the scripts and a recording (MP4) of those demos. Warning about Demos The recordings […]
Also Extensions Created Because of SQL Plan Directives Can Invalidate Packages
UPDATE 2015-12-18: As metioned by Bryn Llewellyn in this tweet, the invalidation I describe below is caused by bug 19450314. A patch for it is available here for several releases (e.g. it is available for 12.1.0.1.0, 12.1.0.2.1 or 12.1.0.2.13, but not for 12.1.0.2.0). I successfully tested it on 12.1.0.1.0. UPDATE 2016-11-08: The patch related to […]