(1) identificar as queries com maior numero de versões .Neste caso vamos verificar as consultas sql que tiveram mais de 20 versões de execução .
select sql_id,version_count from v$sqlarea where version_count > 20 ;
Exemplo de resultado :
SQL_ID VERSION_COUNT
-------------------------------------------------------------
56wzt9qfdnrju 63
9u8t5m5cqx844 81
0x5xgr3mcddb1 56
6thv1hstvkcg9 187
3083syarq6g7j 113
(2) vamos verificar qual o sql de uma destas versões .
select SQL_TEXT from v$sql where SQL_ID = '8p1pztfdxut3u' and rownum = 1
(3) depois disso pegamos o motivo das vários execuções com esse script abaixo :
select * from v$sql_shared_cursor where sql_id = '8p1pztfdxut3u'
Essa querie a partir da quinta coluna traz campos com resultado S ou N .As colunas que estiverem com 'Y'
estão dizendo o motivo dessa query filha (child_address) não ter utilizado o parse da query original (adress).
os motivos que podem acontecer são os seguintes :
UNBOUND_CURSOR,
SQL_TYPE_MISMATCH,
OPTIMIZER_MISMATCH,
OUTLINE_MISMATCH,
STATS_ROW_MISMATCH,
LITERAL_MISMATCH,
FORCE_HARD_PARSE,
EXPLAIN_PLAN_CURSOR,
BUFFERED_DML_MISMATCH,
PDML_ENV_MISMATCH,
INST_DRTLD_MISMATCH,
SLAVE_QC_MISMATCH,
TYPECHECK_MISMATCH,
AUTH_CHECK_MISMATCH,
BIND_MISMATCH,
DESCRIBE_MISMATCH,
LANGUAGE_MISMATCH,
TRANSLATION_MISMATCH,
BIND_EQUIV_FAILURE,
INSUFF_PRIVS,
INSUFF_PRIVS_REM,
REMOTE_TRANS_MISMATCH,
LOGMINER_SESSION_MISMATCH,
INCOMP_LTRL_MISMATCH,
OVERLAP_TIME_MISMATCH,
EDITION_MISMATCH,
MV_QUERY_GEN_MISMATCH,
USER_BIND_PEEK_MISMATCH,
TYPCHK_DEP_MISMATCH,
NO_TRIGGER_MISMATCH,
FLASHBACK_CURSOR,
ANYDATA_TRANSFORMATION,
INCOMPLETE_CURSOR,
TOP_LEVEL_RPI_CURSOR,
DIFFERENT_LONG_LENGTH,
LOGICAL_STANDBY_APPLY,
DIFF_CALL_DURN,
BIND_UACS_DIFF,
PLSQL_CMP_SWITCHS_DIFF,
CURSOR_PARTS_MISMATCH,
STB_OBJECT_MISMATCH,
CROSSEDITION_TRIGGER_MISMATCH,
PQ_SLAVE_MISMATCH,
TOP_LEVEL_DDL_MISMATCH,
MULTI_PX_MISMATCH,
BIND_PEEKED_PQ_MISMATCH,
MV_REWRITE_MISMATCH,
ROLL_INVALID_MISMATCH,
OPTIMIZER_MODE_MISMATCH,
PX_MISMATCH,
MV_STALEOBJ_MISMATCH,
FLASHBACK_TABLE_MISMATCH,
LITREP_COMP_MISMATCH,
PLSQL_DEBUG,
LOAD_OPTIMIZER_STATS,
ACL_MISMATCH,
FLASHBACK_ARCHIVE_MISMATCH,
LOCK_USER_SCHEMA_FAILED,
REMOTE_MAPPING_MISMATCH,
LOAD_RUNTIME_HEAP_FAILED,
HASH_MATCH_FAILED,
PURGED_CURSOR,
BIND_LENGTH_UPGRADEABLE