最近在读Troubleshooting Oracle Performance。里面有段话,百思不得其解。见红色字体部分。
From a performance point of view, you should avoid hard parses as much as possible. This
is precisely the reason why the database engine stores shareable cursors in the library cache. In
this way, every process belonging to the instance might be able to reuse them. There are two
reasons why this leads to high costs for hard parses. The first is that the logical and physical
optimizations are highly CPU-intensive operations. The second is that memory is needed for
storing the parent and child cursors in the library cache. Since the library cache is shared over
all sessions, memory allocations in the library cache must be serialized. In practice, one of the
latches protecting the shared pool must be obtained before being able to allocate the memory
needed for both the parent and child cursors. Even if the impact of soft parses is much lower
than that of hard parses, it is desirable to avoid soft parses as well because they are also subject to some serialization. In fact, to search for a shareable parent cursor, you must obtain one of
the latches protecting the library cache. In summary, you should avoid soft and hard parses as
much as possible because they inhibit the scalability of applications.
红色部分的意思:即使软计息比硬解析的影响小,但还是应该尽量的避免软解析,他们也会导致串行化。
一条SQL语句,没有硬解析的情况下,可以避免软解析?我一直理解的是,SQL语句要不硬解析,要不软解析?莫非还可以不解析吗?请大侠赐教啊。
[ 本帖最后由 wei-xh 于 2010-5-25 23:15 编辑 ]
From a performance point of view, you should avoid hard parses as much as possible. This
is precisely the reason why the database engine stores shareable cursors in the library cache. In
this way, every process belonging to the instance might be able to reuse them. There are two
reasons why this leads to high costs for hard parses. The first is that the logical and physical
optimizations are highly CPU-intensive operations. The second is that memory is needed for
storing the parent and child cursors in the library cache. Since the library cache is shared over
all sessions, memory allocations in the library cache must be serialized. In practice, one of the
latches protecting the shared pool must be obtained before being able to allocate the memory
needed for both the parent and child cursors. Even if the impact of soft parses is much lower
than that of hard parses, it is desirable to avoid soft parses as well because they are also subject to some serialization. In fact, to search for a shareable parent cursor, you must obtain one of
the latches protecting the library cache. In summary, you should avoid soft and hard parses as
much as possible because they inhibit the scalability of applications.
红色部分的意思:即使软计息比硬解析的影响小,但还是应该尽量的避免软解析,他们也会导致串行化。
一条SQL语句,没有硬解析的情况下,可以避免软解析?我一直理解的是,SQL语句要不硬解析,要不软解析?莫非还可以不解析吗?请大侠赐教啊。
[ 本帖最后由 wei-xh 于 2010-5-25 23:15 编辑 ]
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22034023/viewspace-664139/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/22034023/viewspace-664139/