Statements that differ by literals will have different sql ids. The sql id is just a hash of the sql statement. Statements that differ by literals may well have the same force_matching_signature. There are many reasons for different child cursors - take a look at some of the reasons exposed in v$sql_shared_cursor. -- //www.freelists.org/webpage/oracle-l