Author Archives: Bobby

About Bobby

I live in Chandler, Arizona with my wife and three daughters. I work for US Foods, the second largest food distribution company in the United States. I have worked in the Information Technology field since 1989. I have a passion for Oracle database performance tuning because I enjoy challenging technical problems that require an understanding of computer science. I enjoy communicating with people about my work.

Comparison of number with LIKE suppresses index

We ran into a performance issue where all of the top queries in our AWR report were doing a LIKE comparison of a NUMBER column against a character literal like this: customer_number LIKE ‘123456%’ customer_number is a selective predicate and … Continue reading

Posted in Uncategorized | Leave a comment

Scripts to collect, truncate Exadata state dumps

I’m still doing state dumps as described in my previous post. I wanted to collect the state dumps (diag process trace files) from all nodes of my Exadata database and decided to write a couple of scripts to automate it … Continue reading

Posted in Uncategorized | Leave a comment

oradebug -g all dumps to diag process trace file

One of my favorite children’s books when my children were younger was one about the Berenstain Bears where Father Bear tries to teach his son how to ride a bike and keeps making all these dumb mistakes.  “Let that be … Continue reading

Posted in Uncategorized | 1 Comment

_unnest_subquery=FALSE for PeopleSoft performance?

Oracle support recommends setting the hidden parameter _unnest_subquery to FALSE to improve the performance of PeopleSoft applications on Oracle databases.  I’m trying to understand the consequence of changing this parameter from its default setting of TRUE. PeopleSoft applications have a … Continue reading

Posted in Uncategorized | Leave a comment

SET AUTOTRACE TRACEONLY to test effect of patch

In an earlier post I described the process that I go through to check the plans of production SQL queries to see if they change when you do a system upgrade or patch.  Today I’ve been following that process to … Continue reading

Posted in Uncategorized | 2 Comments

Global index faster than local in some cases

We usually use locally partitioned indexes on partitioned tables.  Many of our data warehouse tables are partitioned by date and partitions get added or removed over time.  It is much easier to maintain the indexes on this kind of table … Continue reading

Posted in Uncategorized | Leave a comment

Script to get AWR previous day, week, month

I’ve uploaded a sql script that gets an AWR report for yesterday, a week from yesterday, and four weeks from yesterday for the same time period – 10 am to 4  pm. I’ve been manually reviewing the previous day’s AWR … Continue reading

Posted in Uncategorized | Leave a comment

Good chapter for V$ views and AWR report

I’m helping a coworker learn how to do Oracle performance tuning and today I think we found some good documentation on which V$ views to use for tuning which can also help with reading an AWR report.  In a previous … Continue reading

Posted in Uncategorized | 2 Comments

Compression preserved on inserts with append hint

I’ve known for a while that if you have an Exadata table compressed with Query High compression and you want to load data into it and have it be compressed as it is loading you have to use direct path … Continue reading

Posted in Uncategorized | Leave a comment

APPEND_VALUES hint

A coworker of mine just brought a new hint to my attention – the APPEND_VALUES hint.  I’m used to the append hint which makes insert statements use direct path instead of conventional loading.  Here is what the old standby append … Continue reading

Posted in Uncategorized | Leave a comment