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.

9b4m3fr3vf9kn and an4593dzvqr4v

You got to love Exadata and subpartitioned tables.  We have these queries on one particular table that are taking forever to parse.  Sometimes a simple explain plan on the simplest possible query against the table takes 20 or 30 seconds.  … Continue reading →

Posted in Uncategorized | 10 Comments

Delphix, direct I/O, and direct path reads

I’ve been working on testing performance on a database that uses Delphix as its storage system and ran across an unexpected side effect of using Delphix to clone a production database for testing.  Because Delphix uses NFS to present the … Continue reading →

Posted in Uncategorized | 3 Comments

How to break a large query into many small ones

I haven’t figured out the best way to do this yet so this is a work in progress.  I’m trying to document the process of taking a large query that joins many tables together and breaking it into a series … Continue reading →

Posted in Uncategorized | 2 Comments

Outline hint for query tuning

I had a situation today where I had two slightly different queries that I thought should have the same plan but they didn’t.  So, I needed a way to force the slower query to run with the same plan as … Continue reading →

Posted in Uncategorized | 4 Comments

Yet another test_select package update

Most recent version here(updated). Added these two: display_results(test_name,compared_to_test_name) – output results of testings in the two scenarios.  List results from all queries that ran more than 3 times as long with one test or the other.  Also summarize results with … Continue reading →

Posted in Uncategorized | 1 Comment

Update to test_select package

Quick update to package from previous post. Here is the zip of the download: zip(updated) I added these procs to collect select statements on a source production database and to copy them back (as clobs) to the test database: collect_select_statements(max_number_selects, … Continue reading →

Posted in Uncategorized | Leave a comment

Package to test large select statements

I’ve uploaded this package(updated) that I’m using to test some large select statements.  See the file packagedescriptionv1.txt for a description of the package.  Also, test.sql and test.log is an example of using the package. This is an updated version of … Continue reading →

Posted in Uncategorized | 2 Comments

Shared servers prevents web outage

This weekend we had the most convincing evidence that our change from dedicated to shared servers on a database that supports a farm of web servers was the right move.  We have had some outages on the weekend caused by … Continue reading →

Posted in Uncategorized | 6 Comments

Proc to run a long select statement

I’m trying to test some select statements that have some lines longer than 4000 characters and I couldn’t get them to run in sqlplus so I built this proc to run a select statement that is stored in a CLOB … Continue reading →

Posted in Uncategorized | Leave a comment

Dynamic sampling hint better than multi-column histogram

One of our senior developers found a way to greatly improve the performance of a query by adding a dynamic sampling hint for a table that had multiple correlated conditions in its where clause.  This led me to try to … Continue reading →

Posted in Uncategorized | Leave a comment