|
xuebao_zx,
I'm confused about your words "证实一点,之前OPTIMIZER_MISMATCH 为Y的猜测是错的" in message #10. Earlier, you did not *猜测*, you actually showed it clearly you *had* OPTIMIZER_MISMATCH 为Y. See your message #7.
> 那么v$sql_shared_coursor中的部分SQL过旧,被挤了出去,那么现次执行相同的SQL,此时相同版本在
> v$sql_shared_coursor找不到,就需要再次解析,version_count值就加1吗?
Instead of saying "v$sql_shared_coursor中的部分SQL...被挤了出去", say SQLs in shared pool are aged out.
There're two cases. Normally when a SQL is aged out, the entire cursor, i.e. including its heap 0 and 6 are aged out. In that case, it makes no sense to talk about count of its remaining versions. But if only heap 6 is aged out, version_count stays unchanged. When the next parse occurs, version_count should not increase because Oracle simply adds a new heap 6 to an existing heap 0.
Also, don't ignore other people's messages, such as yanyp's message #9.
Yong Huang |
|