sábado, 12 de fevereiro de 2011

Identificar queries com parse Alto

(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

Nenhum comentário:

Postar um comentário