How to Find duplicate executed Sql Statements in Oracle

     This Query  display those SQL statements which are identical in text for the first 100 characters.

If there are more than 50 such cases, then it is almost certain that "bind variables" are not being used, which will result in "flushing" of the Shared SQL Area.

select   substr(sql_text, 1, 60) text,
         count(*) dups
from     v$sqlarea
group by substr(sql_text, 1, 60)
having   count(*)  50
order by 2 desc;