Optimizer with Oracle Database 12c
Oracle White Paper – June 2013
What is the difference between SQL Profiles and SQL Plan Baselines?
By Maria Colgan-Oracle on May 08, 2012
Plan Stability using Sql Profiles and SQL Plan Management
Amit Bansal / 20 December, 2011
Comments from Kerry Osborne September 9th, 2011 – 18:31
You didn’t mention the two biggest differences (in (more...)
Performance testing at bol.com
On Monday October 12th Rob de Groot and Chris Kramer of the bol.com test automation team and development process innovation team will present on performance testing at bol.com. The presentation is for the Dutch Web Performance & Operations Meetup, as a pre-event for the WebPerfDays.
Rob and Chris will elaborate on how performance testing evolved at bol.com and show how modern tooling like Docker and Mayfly (more...)
(warning: this is a rather detailed technical post on the internal working of the Oracle database’s commit interactions between the committing foreground processes and the log writer)
After the Trivadis Performance days I was chatting to Jonathan Lewis. I presented my Profiling the log writer and database writer presentation, in which I state the foreground (user/server) process looks at the commit SCN in order to determine if its logbuffer contents are written to disk by (more...)
Following on from my earlier posting of problems with temporary table and the PL/SQL result cache (a combination which the manuals warn you against) here’s another problem – again, to a large degree, self-inflicted.
Imagine you have a complex report involving a large number of financial transactions with a need to include calculations about current exchange rates. Unfortunately the rules about calculating the appropriate exchange rate for any transaction are complex and you find you (more...)
Yesterday I thought I’d spend half an hour before breakfast creating a little demonstration of a feature; some time about midnight I felt it was time to stop because I’d found enough bugs to drive me up the wall. Today’s short post is just little warning: be VERY careful what you do with the PL/SQL result cache – if you use the results of database queries in the cache you may end up with inconsistent (more...)
It’s getting harder and harder to find time for writing. Anyway, this post stays from a long time in my draft so, I think is time to finish and post it. That one is the last one from the optimizer statistics series. For now, of course :) After describing the horror around the way that […]
Working as a recognised expert at something is a little…strange, I find.
I had an assignment this week to go visit a client, have a look at a performance issue and find out the root cause. I was also to at least come up with suggested resolutions with the ideal aim of giving them a proven fix they could implement. All to be done in two to three days. This is pretty standard fayre when (more...)
This is the presentation I gave at the Scotland OUG back in June 2015 (Yes, I know I’m late).
The presentation was interrupted by a fire alarm (you can read all about it here).
This is a customer case study on a proof of concept we did with a customer a while ago. The PoC was successful and we are now waiting for the application to catch up and go to Oracle 12c so (more...)
Sometimes it just happens. You have a bloated Java application at your hand and it does not perform well. You may have built this application yourself or just got it as it is now. It doesn't matter, thing is - you do not have a slightest idea what is wrong here.
Java ecosystem have abundance of diagnostic tools (thank for interfaces exposed at JVM itself), but they are mostly focused on some specific narrow kinds (more...)
This post is about collecting and visualizing I/O latency histograms for NetApp
filers in C-mode.Motivations:
The drill down of I/O latency is an important technique for troubleshooting and benchmarking storage. Average latency values can hide details
of what is happening on the storage. Think for example of storage systems with flash and spindles, each serving I/O at different latency. Moreover averaging the measured values over time can hide details in case of varying (more...)
A lot of blogposts and other internet publications have been written on the full segment scan behaviour of a serial process starting from Oracle version 11gR2. This behaviour is the Oracle engine making a decision between scanning the blocks of a segment into the Oracle buffercache or scanning these blocks into the process’ private process global area (PGA). This decision is even more important on the Exadata platform, because the Oracle engine must have made (more...)
event histogram metric, a script and some related comments on collecting and displaying wait event latency histograms for Oracle performance troubleshooting.Why:
Latency histograms (and by extension wait event histograms) provide very useful information when troubleshooting performanc
e for systems exhibiting response time with multi-mode distribution. In such cases average wait values are often not sufficient to understand the behavior of the system under study and histograms
provide a finer level of details. A (more...)
This is going to be a very short post for a change. I have used Swingbench extensively and really love the tool. Many thanks to Dominic Giles!
Recently he announced a new tool on his blog that you can use to inflate your data volume. So instead of using the “-scale” argument when executing oewizard you can just keep the defaults and later on create as much data as you like. Here is an example, (more...)
Teaching is on the things I like doing, and currently I am investigating the Oracle 12c features around caching data in the various memory areas. Since the In-Memory (cost) option has been discussed by other far more knowledgeable people I would like to share some findings about the big table caching here.
In Oracle 12c you have two additional options to cache information: full database caching and big table caching. The first is (more...)