Oracle 11g R2 - same query sometimes fast, sometimes slow I have a simple update query on a table with about 100 rows in it:

UPDATE RESULTS_DATA 
     SET IMAGE_BLOB=:myBlob 
WHERE MEASUREMENT_INDEX=:mIndex 
  AND BATCH_ID=:batchId 
  AND SYSTEM_ID=:sysId


There are indexes on all 3 columns I am searching on. The BLOB is 1.2MB in size. Sometimes the query takes 0.5 seconds to complete, but other times it takes around 3-4 seconds. Looking in the V$SQL table shows that almost everything is the same between multiple runs of the same query, but the following fields are very different:

IO_INTERCONNECT_BYTES (1277952 on fast query, 2818048 on slow query)
    PHYSICAL_READ_REQUESTS (1 on fast query, 27 on slow query)
    PHYSICAL_READ_BYTES (8192 on fast query, 393216 on slow query)
    PHYSICAL_WRITE_REQUESTS (155 on fast query, 164 on slow query)
    PHYSICAL_WRITE_BYTES (1269760 on fast query, 2424832 on slow query)

This is from running exactly the same query sending exactly the same BLOB. Could anyone tell me why this would happen?

Thanks!
The query is sometimes fast because it is in the database's cache. 

Make a test: 


alter system flush shared_pool; (as sysdba - NOT IN PRODUCTION !!) 
execute the query and display execution plan; 
execute the query and display execution plan (should be faster because the query is not parsed but only executed ); 
alter system flush shared_pool; (as sysdba)
execute the query and display execution plan (should be slower the query is first parsed then executed) 


In a ideal world, a query is parsed once and bound/executed over and over.