dmann's blog

Diagnosing slow client processing of result sets...

Here are two runs of the same SQL from different programs. The top is an automated process, the bottom is Toad. (SQL is the same, but SQL_ID is different because of white space issues): So why is one finished in 7.2 minutes and one still at 4.7 hours and still counting up?

Quick filter for Application Express Reports

I normally get a lot of mileage out of Application Express interactive reports. Unfortunately there are some restrictions on the SELECT statements that can be used with them. Here is a demonstration of a technique I use when I want to add some interactivity to a plain old Apex report. I will create a Select List dropdown that submits and refreshes the report data automagically. The value in the select list will be applied as a filter to the report when it refreshes.

1) Create the Select List

• Items -> New Item -> Select List • Choose "Select List with Submit" • Next

Updated Developer Days Virtual Machine available...

I just noticed there is a 11gR2 version of the Developer Days VM available now. You can have a running copy of 11gR2,
Oracle TimesTen In-Memory Database, Oracle XML DB, Oracle SQL Developer, Oracle SQL Developer Data Modeler, Oracle Application Express, Oracle JDeveloper, and Hands-On-Labs (accessed via the Toolbar Menu in Firefox) on a copy of Oracle Enterprise Linux 5.

This is great as a sandbox for development or an easy way to stand up a DB for messing around with. The image supplied by Oracle runs inside Oracle VirtualBox VM engine which is also free.

New web host...

We moved to a new web host on Black Friday. My old host doesn't appreciate repeat business so it was time to make the change and try something new. I just started up with DreamHost and so far I am impressed. Migration of the site went quicker than expected and so far I only made one mistake that caused any issues but I will blame that on waiting for DNS changes to propagate :)

HAVING & Bind Variables

Had an odd one come across my desk today. I have seen Bind variables used in the WHERE clause thousands of times. I have seen Binds in the SELECT lists hundreds of times. I have seen it used in the HAVING clause zero times... until today when it turns out it was causing a performance issue. With the Bind variable in the HAVING clause we were seeing an execution plan with lots of Full Table Scans and 12+ second runtimes. When editing the query and using a literal in the HAVING clause we saw 100ms or less performance and very efficient Execution Plans.

Speed up SQL Developer Startup

If you are using SQL Developer 2.x you can reduce your startup time by about 20% by disabling any unneeded extensions. I was able to reduce my startup time from 11 seconds to 8 seconds by turning off all extensions (none of which I really needed anyway).

Golden Gate - OS User Permissions on *nix - DBA vs ETL Admin

Seems like Golden Gate is following me around. I used their tools in 2005 to replicate from OLTP databases to a central reporting database for my previous employer. Now that Oracle bought them the buzz in my current company is to leave Oracle's multiple and complicated incarnations of replication technologies in the dust and try moving forward with GG. Fine with me, I like the product, not a fan of the licensing as I think Oracle has been on the lagging side of vendor supplied replication tools, but hey what do I know, I just arrange zeroes and ones for a living.

Test Driving the h2 Embedded Java Database

I'm starting work on some DB tuning utilities written in Java. I am running the utilities on my local machine against remote servers and I needed a way to hold some data locally. The volume of data I plan on storing is more than I would feel comfortable keeping in local properties or XML files and I didn't want to deal with setting up an Oracle XE instance just to service my lightweight utilities so I checked into a bunch of embedded databases. Embedded databases are databases that I can wrap into my application.

New Project: trc2sql.pl - Extract SQL from an Oracle Trace...

I started a new project for a utility I started writing. It has some basic functionality now but will probably increase in utility int he future.

It is a Perl script that extracts the SQL statements from an Oracle 10046 trace file. This is useful if you need to re-run SQL that was captured during a trace. It also helps reduce the amount of junk you have to slog through if you are interested in

trc2sql.pl - Extract SQL Statements From Oracle 10046 Trace File

-Dave

SQL Tuning Advisor - what profile am I accepting?

When working on a SQL Tuning issue I often kick off a SQL Tuning Advisor job on the SQL while I gather info about statistics and other things I like to check when tuning. After I get an idea of where performance might be suffering I use the SQL Tuning Advisor results for a second opion. Unfortunately more often than not the SQL Tuning Advisor reports it can dramatically improve the performance of a SQL Statement by using a SQL Profile to force a different plan.

Pages

Subscribe to RSS - dmann's blog