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.

Reading Concepts Manual on Amazon Kindle

I got a Kindle for Christmas.  I thought I would enter the 21st century and try reading books on a Kindle, though I kind of like the feel of a real book.  One use I had in mind when I … Continue reading

Posted in Uncategorized | 3 Comments

Datapump to RECO ASM Diskgroup on Exadata

I have a large sub-partitioned table on our Exadata system that I need to backup prior to a change.  In the past we have done backups of this large table to another table using inserts and parallel DML,  but it … Continue reading

Posted in Uncategorized | 1 Comment

REGEXP_LIKE Example

This is simple, but fun.  I have studied the regular expression features in Oracle but haven’t really used them.  I needed a list of all the tables in a particular schema that started with a certain string and ended with … Continue reading

Posted in Uncategorized | 13 Comments

Soft Parses

I’ve done a little research to figure out what a “soft parse” is because I’m working on a system that is experiencing performance issues doing soft parses.  My own translation is that a “soft parse” occurs whenever the Oracle optimizer … Continue reading

Posted in Uncategorized | Leave a comment

SHARED_CONTEXT_SENSITIVE VPD policy type

The SHARED_CONTEXT_SENSITIVE VPD policy type seems like a good option for VPD predicates that don’t need to change during a user’s session. I’m working on a system with VPD policies in place to cause users to see only certain parts … Continue reading

Posted in Uncategorized | Leave a comment

Index causes poor performance in query that doesn’t use it

I’ve been working for hours on a performance issue the past week and this one and found a strange situation:  A new function based index sped up the queries that used it, but slowed down other queries that didn’t use … Continue reading

Posted in Uncategorized | 2 Comments

DBMS_STATS queries invisible indexes

I thought that an invisible index was never queried, but that it was only maintained as the table was modified.  But, when you use the dbms_stats package to gather statistics on a table, including its indexes, the invisible indexes are … Continue reading

Posted in Uncategorized | 1 Comment

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