Posts Categorized: Technical Blog

Revealing the hints behind the Automatic SQL Tuning Advisor

A client recently supplied a list of 50+ SQL IDs that should receive SQL profiles, and I’ve been working with Gwen Shapira to review the list. Further discussion showed that this list had come from the Automatic SQL Tuning feature, installed by default in Oracle 11g. The report includes a list of recommended SQL profiles ordered by “Maximum Benefit”, and in our case it included several hundred statements. The expected workflow, as far as I can gather, is to see the recommendations, look at the before- and after- execution plans, and accept the recommendations. Before blindly accepting recommendations, though, I like to see what exact changes are being proposed. They aren’t listed anywhere in the report, and require some extra work to uncover. The first step is to get the automatic SQL tuning advisor report. (

Temporary Tablespaces: to BIGFILE or not to BIGFILE

The environment was an Exadata environment undergoing pre-production stress testing. We used Real Application Testing to take a highly-concurrent OLTP workload, and replayed the workload with the synchronization parameter set to FALSE, effectively increasing concurrency beyond the original test system. AWR showed a large volume of buffer busy activity.

Read GoldenGate Discard Files

GoldenGate discard files can get big and cumbersome. To address this, I have build a PL/SQL function to read the discard files thereby reducing the output to one line per error and it also means that I can apply SQL logic to filter out the unwanted entries. Here’s how to do it.

Moving Optimizer Statistics for all Objects Involved in an Execution Plan (between databases)

In this blog post I would like to share with you how I have transferred optimizer statistics and as result managed to get exactly the same execution plans in both production and development environments. I am not going to go through all the details in this blog post as I am limited in time today. You can find all the steps I have used in my github.com script repository.

Character Set Conversion 10g and 11g – Part 1.

This post is the first in a series of discussions … perhaps you have never had the pleasure of needing to change a character set. If you have not and soon do, purchase a good sleeping bag as you may be at the office late for a few days to get the task accomplished.

Case Study: How to return a good SQL execution plan from 10g days after an 11g migration

Any database upgrade suppose to change SQLs’ execution plans for the better. In 99 cases out of 100 this is exactly what happens. What to do with rest 1% of the SQLs? This blog post is exactly about such unlucky case I have resolved today. Hope that you will learn something out of it. As always let me know what you think using the comments section at the end of the post.

Page 4 of 61« First...23456...102030...Last »