Oracle 11g R2 - same query sometimes fast, sometimes slow
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.